在JavaScript中,为什么一个反转后的数组等同于一个正常的数组?

3

为什么会有以下代码:

var strArr = ["a", "b"];
console.log(strArr.reverse() === strArr ? true : false);

如果反转后的数组顺序不同,请打印true。

2
因为它是通过引用完成的,并且根据文档返回数组的指针。 - Francisco Presencia
2
=== 已经返回一个布尔值。 - melpomene
还要注意,[0,1,2] === [0,1,2] --> false,因为===仅在操作数引用相同对象时返回true,而不考虑内容。 - 1983
2个回答

6
因为reverse原地翻转数组,所以你会将数组与其本身进行比较。

3
实际上,Array.prototype.reverse()方法会将原始数组反转,并返回对此反转后的数组的“引用”。因此,结果和反转后的原始数组变得相同。
如果在开发此方法之前有人问我,我会要求保留原始数组并返回一个反转的数组;可惜显然这不是我的决定。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接