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的用法很好,很长时间没有看到这两个:)