首页 > 解决方案 > Javascript 性能和比较对象与对象的属性

问题描述

在 javascript 中,通过属性或具有大量属性的整个对象进行比较是否更快?以下是我目前拥有的,但我的对象有很多属性,而且对象列表非常大。从单个属性创建一个列表id并比较id对象是否更好?objectids.indexOf(object1.id). 我会看到性能提升吗?

与对象比较

objects.indexOf(object1);

function Object() {
  this.id = 1;
  this.name = "test";
}

标签: javascriptarraysperformance

解决方案


请注意,两个版本并不等效:

  ({ id: 1}) === ({ id: 1 }) // false      
  ({ id: 1}).id === ({ id: 1 }).id // true

如果两种情况的工作方式相同indexOf,则必须平均遍历数组的一半才能获得索引,那么该数组是 id 数组还是对象数组并不重要。要获得O(1)查找时间,请改用 a Set


推荐阅读