[英]Javascript : Checking if two dimensional array contains element in first dimension
[英]Checking if two dimensional array contains one dimensional
我有两个数组 - 一维和一个二维。
a = [[1,1],[2,2]];
b = [1,1];
我想检查“a”是否有像“b”这样的元素。 我们看到 'a' 包含 [1,1] 并且 b 是 [1,1] 所以让我们检查一下:
a.indexOf(b)
它返回-1
,'a' 不包含 'b',我不明白。
干杯
如果在数组中找不到匹配项,则indexOf
返回-1 。 您的数组a
不包含元素b
。
编辑:
为了澄清@JonathanLonowski所说的内容,没有匹配项的原因是因为您正在进行严格的比较,比较引用而不是值。
<Array>.some
方法测试多维数组中是否至少有一个数组通过提供函数实现的测试。
<Array>.every
方法测试数组中的所有数组项是否通过提供函数实现的测试。
这两种方法结合起来可以检查多维数组中的所有项目是否值得寻找。
const checkArray = (arrays, array) => arrays.some(a => { return (a.length > array.length ? a : array).every((_, i) => a[i] === array[i]); }); const arrays = [[0, 1], [2, 2], [0, 3, 2, 1]]; [ [0, 1], // true [2, 2], // true [0, 3, 2, 1], // true [1, 0, 3, 2, 1], // false [2, 2, 1], // false [0, 0], // false [1, 2], // false [0, 1, 2] // false ].forEach(array => { console.log(checkArray(arrays, array)); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.