2017-07-17 8 views
-1

私は2つの配列playerMovesmovesListを持っています。このような。
配列の値に基づいて配列の配列をフィルタリングする方法

var playerMoves= [4, 6]; 
var movesList= [[0,1,2],[0,3,6]]; 

IはplayerMoves配列の値は、movesListの各配列中に存在してはならないようmovesListアレイをフィルタリングする必要があります。

console.log(move); 
// should return [0,1,2] 

私の試み

var playerMoves= [4, 6]; 
var movesList= [[0,1,2],[0,3,6]]; 
var move = movesList.filter(v => v.filter(c => { 
    return playerMoves.indexOf(c) === -1; 
})); 
console.log(move); 
+2

と何が起こったのか?それは動作しましたか? – Neal

答えて

3

あなたはArray#filterArray#everyArray#includesのミックスを使用することができます。

let playerMoves = [4, 6]; 
 
let movesList = [ 
 
    [0, 1, 2], 
 
    [0, 3, 6], 
 
    [5, 7, 9], 
 
]; 
 

 
let res = movesList.filter(v => v.every(c => !playerMoves.includes(c))); 
 

 
console.log(JSON.stringify(res));

関連する問題