我将 (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/