JS - 搜索对象数组 - 优化

时间:2015-05-18 17:44:33

标签: javascript arrays performance search

我正在开发网络XMPP聊天。在检索Roster之后,我将人们的信息放入对象数组,但在将对象推送到数组之前,我必须检查它在该数组上的先前存在,并且它非常慢,因为它使算术系列的总计数运算是前。 820为40个联系人,这个数字不会让我开心。我的问题是:在这种情况下,搜索方法是否有可能进行优化?

  1. 我也不想将数组转换为关联数组。
  2. 对象未排序。
  3. 我知道还有其他线程,但优化没有任何内容。

1 个答案:

答案 0 :(得分:1)

同时使用数组和对象。

var info_array = [];
var info_object = {};

然后当你得到一个新的info时,请执行:

if (!info_object[info.name]) {
    info_array.push(info);
    info_object[info.name] = info;
}

现在,您可以迭代info_array,或使用info_object快速按名称访问它们。