14 javascript
在JavaScript对象中按键检索值与在单个JavaScript对象数组上进行迭代之间的性能差异是什么?
在我的例子中,我有一个包含用户信息的JavaScript对象,其中键是用户的ID,值是每个用户的信息.
我问这个的原因是因为我想使用该angular-ui-select模块来选择用户,但我不能将该模块与Javascript对象一起使用 - 它需要一个数组.
多少,如果有的话,我是通过从按键查找切换到迭代查找来牺牲的?
按键:
var user = users[id];
Run Code Online (Sandbox Code Playgroud)
通过迭代
var user;
for (var i = 0; i < users.length; i ++) {
if (users[i].id == id) {
user = users[i]; break;
}
}
Run Code Online (Sandbox Code Playgroud)
Ole*_*sen 13
答案取决于浏览器,但是,jsperf.com上就此问题进行了一些性能测试.它还取决于您的数据大小.通常,当您有大量数据时,使用对象键值对会更快.对于小型数据集,数组可以更快.
数组搜索将具有不同的性能,具体取决于目标项目在数组中的位置.对象搜索将具有更一致的搜索性能,因为密钥不具有特定顺序.
循环遍历数组比循环throigh键更快,因此如果您计划对所有项执行操作,将它们放在数组中是明智的.在我的一些项目中,我同时做这两件事,因为我需要进行批量操作并从识别器快速查找.
一个测试:
| 归档时间: |
|
| 查看次数: |
17810 次 |
| 最近记录: |