const a = [[1,1], [2,1], [3,1]];
console.log(a);
console.log(a.includes([1,1]));
> false
有人能解释一下为什么上面的输出是false
吗?值得注意的是,这在任何搜索函数(.find
、.indexof
等)中都会出现,如果我尝试[1,1] in a
,也会出现这种情况。我显然缺少一些关于多维数组搜索是如何在javascript中工作的东西。
发布于 2021-12-21 19:13:35
这基本上等于操作符在JavaScript中的工作方式。如果我们试着比较两个数组
[1]=== [1]
// false相等运算符可以比较原语值(数字、字符串布尔值)。但对于数组和对象,则进行比较,以供参考。在这里,我们比较了两个不同的引用,所以它是假的。因为同样的原因,你变得错误了。您必须编写客户逻辑来比较数组。
https://stackoverflow.com/questions/70443851
复制