我的问题是比较两个不同数组的值,不知道它们是否相等,而是比较数组B中是否存在数组A中的值。
包含不起作用,并且我不比较长度,仅比较值。
我花了很多时间来寻找答案,但没有发现关于该问题的确切信息。
firstArray = [0,1];
secondArray = [[0,1],[0,2],[0,3],[1,1],[1,2],[1,3]];
如何比较firstArray和secondArray,以了解secondArray是否具有firstArray的值。这就像是一个相等的比较,但前提是firstArray的值位于secondArray中。
如果是,则玩家可以在棋盘上移动。这个想法是,只要firstArray值是secondArray值之一,播放器就可以移动。如果没有,就不可能移动。
答案 0 :(得分:1)
您可以对数组项进行字符串化并进行比较:
var firstArray = [0,1];
var secondArray = [[0,1],[0,2],[0,3],[1,1],[1,2],[1,3]];
var res = secondArray.some(x => JSON.stringify(x) == JSON.stringify(firstArray));
console.log(res);
答案 1 :(得分:0)
将JSON.stringify
与some
和sort()
一起使用:
var firstInSecond = secondArray.some(e => JSON.stringify(e.sort()) == JSON.stringify(firstArray.sort()));
答案 2 :(得分:0)
您可以将Array.prototype.some()与Array.prototype.toString()结合使用:
const firstArray = [0,1];
const secondArray = [[0,1],[0,2],[0,3],[1,1],[1,2],[1,3]];
const isFound = secondArray.some(a => a.toString() === firstArray.toString());
console.log(isFound);