【发布时间】:2016-11-23 16:24:37
【问题描述】:
假设有 100,000 个或更多的对象数组,具有唯一 ID,例如:
myObj={
id:makeUniqueId()
, key:"bla"
, key2:"blabla"
}
我必须将这些对象放在具有唯一 ID 的广告数组中 myObj.id,所以我愿意
objectsList.push( myObj )
拥有这些替代守卫:
if(typeof( objectsIdMap[ myObj.id ] )=="undefined" ) {
objectsIdMap[ myObj.id ]={};
objectsList.push( myObj );
}
和
if( objectsIdList.indexOf( myObj.id) < 0 ) {
objectsIdList.push( myObj.id );
objectsList.push( myObj );
}
哪个性能更好,为什么?使用Set 或Map 获得更好性能的任何有效方法?
【问题讨论】:
-
哪个性能更好,为什么?基准测试可以确定。
-
所以这不是一个很好的问题吗?不确定也许不是,2 次反对但不明白原因。
-
恐怕不是。性能建议取决于很多事情,在一般情况下很难做到正确。关于您的平台的细节可以使任何尝试正确回答没有实际意义。这就是为什么我通常建议自己对代码进行基准测试,而不是试图猜测(很可能是错误的)“最佳”方法。
-
好吧,但是 JavaScript
Array和Object和.indexOf使用/性能呢?这个和平台无关吧?
标签: javascript arrays associative-array