Javascript 查找数组是否在二维数组中

Javascript 查找数组是否在二维数组中,javascript,Javascript,我想知道数组是否在二维数组中 这就是我所尝试的: var x=[1,2]; var y=[[1,1],[1,2],[2,2],[3,3]]; y.includes(x); //should return true 您可以创建哈希: var-ar=[ [1,1],[1,2],[2,2],[3,3] ]; var hash={}; 对于(变量i=0;i

我想知道数组是否在二维数组中

这就是我所尝试的:

var x=[1,2];
var y=[[1,1],[1,2],[2,2],[3,3]];

y.includes(x); //should return true
您可以创建哈希:

var-ar=[
[1,1],[1,2],[2,2],[3,3]
];
var hash={};
对于(变量i=0;i}
您可以使用链式数组方法完成此操作

var ar = [
    [1,1],[1,2],[2,2],[3,3]
];

hasDuplicates(ar, [1,"1"]); //false
hasDuplicates(ar, [1,1]); //true

//Use some to determine at least 1 inner array matches
function hasDuplicates(array, valueToCheck) {
    return array.some(function(a, i) {
        //Check each inner arrays index, and verify that it equals on the same index of the array we want to check
        return a.every(function(ax, ix) {
            return valueToCheck[ix] === ax; //triple equals for equality!
        })
    });
}

演示:

即使这两个数组看起来相同,但它们不是相同的数组引用<代码>[1,2]!==[1,2]因此您不能直接将它们作为对象进行比较如果您想使用库,下划线js具有
\u。findIndex(y,x)
将返回
y
内的位置,或者您可以使用
\u将其作为真理测试。findIndex(y,x)==0
不会区分
[“1”,“2”
[1,2]
-不确定这对本案是否重要+不管怎样,如果我们假设内部数组中的所有值都是整数而不是字符串,那么这就是一个很好的解决方案!some和every的用法很好,很长时间没有看到这两个:)