首页 > 解决方案 > 在javascript中的另一个数组中找到一个数组

问题描述

JS中是否有任何功能可以检查“如果数组存在于更大的数组中?” 我试过了array.includes()array.indexOf()但它们对我不起作用......例如,我在这里除了一个真正的返回值:

parent = [[a,b],[c,d],[e,f]]
child = [c,d]

标签: javascriptarraysmultidimensional-array

解决方案


让我们关注为什么.includes会失败。

Array.includes使用以下函数来检查相等性:

function sameValueZero(x, y) {
  return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
}

由于您将数组作为元素,因此它们是使用引用复制的,因此您正在检查数组的引用。因此它失败了。

以下是一个示例:

const item1 = ['a', 'b'];
const item2 = ['c', 'd'];
const item3 = ['e', 'f']

const parent = [item1, item2, item3]
const child = item3;

console.log(parent.includes(child))

因此,您必须更深入地检查各个值。

参考:


推荐阅读