我正在尝试使用arr.includes(item)。如果该项是数组的元素,则该函数应返回True。但它似乎无法通过多维数组来实现。看一下这个截图(在控制台中运行节点):
我在Google Chrome上获得了类似的结果。
是因为它是EC6功能,还没有完全发挥作用吗?
Mozille page上没有关于此类问题的信息。
答案 0 :(得分:6)
不,你不能在深层结构上使用它,因为它执行===
测试,检查操作数是相同的对象,而不是两个(不同的)对象碰巧有相同的内容。
在您链接到的MDN页面上有一个polyfill,您可以在===
嵌套函数中看到sameValueZero()
测试。
由于上述原因,这实际上会返回true:
let a = [0, 1];
let b = [1, 2];
let c = [a, b];
c.includes(b);
> true
因为传递给.includes
的对象确实是与<{1}}中包含的对象。