2017-07-17 81 views
-1

我有兩個陣列playerMovesmovesList。喜歡這個。
如何根據數組的值過濾陣列陣列

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

我需要將movesList陣列,使得playerMoves陣列的值不應該存在的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));