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

Ben*_*arp 2 javascript ecmascript-6

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

在此输入图像描述

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

是因为它是EC6功能,还没有完全功能吗?

Mozille页面上没有关于此类问题的信息.

Aln*_*tak 6

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

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

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

let a = [0, 1];
let b = [1, 2];
let c = [a, b];
c.includes(b);
> true
Run Code Online (Sandbox Code Playgroud)

因为对象传递给.includes真正多数民众赞成包含在同一个对象c.