Ben*_*arp 2 javascript ecmascript-6
我正在尝试使用arr.includes(item).如果该项是数组的元素,则该函数应返回True.但它似乎无法通过多维数组来实现.看一下这个截图(在控制台中运行节点):
我在Google Chrome上获得了类似的结果.
是因为它是EC6功能,还没有完全功能吗?
在Mozille页面上没有关于此类问题的信息.
不,您不能在深层结构上使用它,因为它执行===测试以检查操作数是否是同一个对象,而不是两个(不同的)对象碰巧具有相同的内容.
在您链接到的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.