Arr.includes(item) - 我可以使用多维数组吗?

时间:2017-05-25 12:28:07

标签: javascript ecmascript-6

我正在尝试使用arr.includes(item)。如果该项是数组的元素,则该函数应返回True。但它似乎无法通过多维数组来实现。看一下这个截图(在控制台中运行节点):

enter image description here

我在Google Chrome上获得了类似的结果。

是因为它是EC6功能,还没有完全发挥作用吗?

Mozille page上没有关于此类问题的信息。

1 个答案:

答案 0 :(得分:6)

不,你不能在深层结构上使用它,因为它执行===测试,检查操作数是相同的对象,而不是两个(不同的)对象碰巧有相同的内容。

在您链接到的MDN页面上有一个polyfill,您可以在===嵌套函数中看到sameValueZero()测试。

由于上述原因,这实际上会返回true:

let a = [0, 1];
let b = [1, 2];
let c = [a, b];
c.includes(b);
> true

因为传递给.includes的对象确实是与<{1}}中包含的对象