【问题标题】:JS - search in array of objects - optimizationJS - 在对象数组中搜索 - 优化
【发布时间】:2015-07-30 08:12:50
【问题描述】:

我正在开发网络 XMPP 聊天。检索名册后,我将人员信息放入对象数组,但在将对象推送到数组之前,我必须检查它是否存在于该数组中,而且速度很慢,因为它会计算算术级数的总和,这是前。 820 代表 40 个联系人,而这个数字并不让我高兴。我的问题是:在这种情况下,搜索方法是否有可能进行优化?

  1. 另外我不想将数组转换为关联数组。
  2. 对象未排序。

我知道还有其他线程,但没有什么关于优化的。

【问题讨论】:

  • 排序和使用对象是两种方式,你为什么不想这样做?
  • 排序会花费很多时间,如果我使用对象(关联数组),我还需要将其转换为数组,以使其可由我的 gui js 框架呈现。
  • 那么管理对象和数组有什么问题?
  • 我错过了什么?听起来他只是在搜索一个包含 40 个联系人的数组……这应该非常非常快,对吧?

标签: javascript arrays performance search


【解决方案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 按名称快速访问它们。

【讨论】:

  • 你给了我另一个想法,现在,它会尽可能快,而且不会占用太多内存。
  • 如果您想出了更好的解决方案,您应该将其发布为答案。
猜你喜欢
  • 2019-05-18
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 2013-11-05
  • 2012-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
相关资源
最近更新 更多