提问人:Ron BELLAICHE 提问时间:8/5/2020 最后编辑:BergiRon BELLAICHE 更新时间:8/5/2020 访问量:343
对象比较 复杂度 Javascript
Object comparison Complexity Javascript
问:
我想比较比较 JavaScript 中具有唯一 id 'key' 的两个对象的性能,使用它们的键或等号,即:或 .object1 === object2
object1.key === object2.key
虽然两者都在工作,但我想知道直接比较键是否更好,因为它只有两个值可以比较,或者是 Javascipt 比较每个值中的每个键/值,然后复杂性将是(n 是对象键的 muber)O(n)
是比较地址还是提高效率?
答:
0赞
yaya
8/5/2020
#1
案例 1.比较不同的对象:
虽然两者都在工作
好吧,他们没有:
{a: 1} == {a: 1} // false
您不能用两个(或三个)等号来比较两个不同的对象。你有两种方式:
JSON.stringify({a: 1}) === JSON.stringify({a: 1})
艺术
{key: 1, a: 1}.key === {key: 1, a: 1}.key
显然,第二个更有效率。
案例 2.比较非明显对象,例如:
var obj1 = {key: 1, a: 1, b: 2}
var obj2 = {key: 2, a: 1, b: 2}
var obj3 = obj1
obj3 === obj1 // true
直接比较它们或通过键比较它们没有区别,两者都是 O(1),因为 js 会通过参考来比较它们,而不是通过比较它们的键值。
评论
1赞
Ron BELLAICHE
8/5/2020
谢谢!很好的答案
评论
.key