javascript - 在javascript中的另一个数组中找到一个数组
问题描述
JS中是否有任何功能可以检查“如果数组存在于更大的数组中?” 我试过了array.includes()
,array.indexOf()
但它们对我不起作用......例如,我在这里除了一个真正的返回值:
parent = [[a,b],[c,d],[e,f]]
child = [c,d]
解决方案
让我们关注为什么.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))
因此,您必须更深入地检查各个值。
参考:
推荐阅读
- sparql - 如何检查三元组是否存在?
- python - 即使我将 pytest.py 移动到 /bin,也找不到命令“pytest”
- yii - yii2 使用会话从 yii 获取用户身份验证
- excel - excel显示链接单元格的单元格地址NOT值
- javascript - 为复杂的验证编写正则表达式
- java - Java中的金字塔模式,星号后跟下划线
- cumulocity - 如何使用 c8y 中的事件处理脚本在数据资源管理器图形模式表中显示自定义信息
- git - 如何将 git 分支获取到先前的提交并将其作为新的 HEAD 推送?
- swift - 快速词典:地图中的地图
- laravel - Laravel MultiAuth 已登录,但将我视为访客