【发布时间】:2019-01-25 10:30:40
【问题描述】:
JS中是否有任何函数可以检查“如果一个数组存在于一个更大的数组中?”
我试过array.includes() 和array.indexOf() 但它们对我不起作用......
例如我这里除了一个真正的返回值:
parent = [[a,b],[c,d],[e,f]]
child = [c,d]
【问题讨论】:
-
了解您尝试的方法为何不起作用的关键在于了解
parent[1]不与child相同。它们是两个独立的对象,碰巧都是数组,并且碰巧有相同的孩子。但是 JS 不知道这一点。因此,您需要添加逻辑,将父母的[c, d]与孩子的[c, d]进行比较,并确定就您而言它们是相同的。 -
将此标记为欺骗,因为它本质上是:“我想做
parent[1] == child,怎么做?” parent 也是一个数组这一事实与问题无关。 -
@ChrisG 正如您所建议的,问题不在于比较。它关于为什么包含失败。所以,我想这不是骗子。但是,我会将其添加到我的答案中作为参考
-
@Rajesh
includes()是基于比较,因此 OP 隐含地假设parent[1] == child应该评估为true。副本解释了为什么不是这种情况并显示了解决方案。换句话说,这是一个完美的骗局。
标签: javascript arrays multidimensional-array