如何根据数组的值过滤阵列阵列
问题描述:
我有两个阵列playerMoves
和movesList
。喜欢这个。
如何根据数组的值过滤阵列阵列
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);
答
您可以使用Array#filter
,Array#every
和Array#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));
和发生了什么?它有用吗? – Neal