gpt4 book ai didi

javascript - 比较javascript中不同实例的相似对象

转载 作者:行者123 更新时间:2023-11-29 22:25:14 24 4
gpt4 key购买 nike

我一直想知道这是为什么:

var a = [[0, 1]];
a[0] == [0, 1];

将返回 false。看起来这 2 个数组,a[0] 和 [0, 1],尽管不是 Array 的同一个实例,但实际上是同一个对象,因为它们的所有属性都是相同的。但是在 JS 中不是这种情况,我不知道为什么。

哪个测试适用于这两个数组,以及更复杂的对象,会返回 true ? (接受来自 jQuery 和 D3.js 的答案,我不打算使用任何其他)

编辑:用 JSON.stringify 包装对象似乎可行;有什么我应该注意的注意事项吗?

最佳答案

[等于运算符]“如果两个操作数都是对象,那么当操作数引用内存中的同一对象时,JavaScript 会比较相等的内部引用。”

参见:https://developer.mozilla.org/en/JavaScript/Reference/Operators/Comparison_Operators

所以,甚至:

[0, 1] == [0, 1]

将返回false,因为它们是不同的对象,即使内容相同。

如果您对使用数组文字感到困惑,请注意上面的代码与以下代码完全相同:

new Array(0, 1) == new Array(0, 1);

关于javascript - 比较javascript中不同实例的相似对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com