javascript - 在 Javascript 中,为什么 [1,2] == [1,2] 解析为 false?

标签 javascript

我将 (x,y) 坐标存储为 2 元素数组。

var coordinateA = [0,3];
var coordinateB = [1,2];

我还有一个更长的数组,其中包含许多这些坐标:

var coordinates = [coordinateA, coordinateB]

想象一下当以下陈述被证明是错误时我的惊讶:

jQuery.inArray(coordinateA, coordinates); // returns -1
coordinateA == coordinates[0];            // returns false
[0,3] == [0,3];                           // returns false(!)
coordinateA == coordinateA;               // returns true, thankfully

有人可以帮我理解为什么会出现这种情况吗?另外,有没有更好的方法在 Javascript 中表示 2D 坐标?感谢您提供任何线索或建议。

最佳答案

这是因为您有两个单独的数组引用

相等运算符检查引用是否相等,而不是数组的内容。

关于javascript - 在 Javascript 中,为什么 [1,2] == [1,2] 解析为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35299348/

相关文章:

javascript - setInterval 只是不会随着clearInterval 停止

javascript - 为什么构造函数没有正确设置 <h6> 文本?

javascript - 意外的 token U Ajax 语法错误

javascript - 如何在另一个之前添加新的 div?

javascript - JavaScript音频持续时间不适用于ALAC文件(HTML音频持续时间属性)

javascript - jquery val() 只取第一行的值

javascript - onclick 同时调用两个函数

javascript - 制表符将 JSON 上传到服务器

javascript - 删除 <head> 中未标记的文本字符串

javascript - 在 PHP 重定向中执行 Javascript