我想根据对象的唯一属性(即键)从对象数组中提取特定对象。

在下面的代码中,我正在搜索“ arr”中的键为8的元素。

var myElement = arr.filter(function(element) {
  return element.key === 8;
});


这是可行的,但是每次运行时,即使找到了正确的元素,它也会遍历数组中的所有元素。例如,如果它在索引4处找到myElement,但是数组中有100个元素,则该片段的运行量将比需要的多25倍。

有没有更有效的方法,还是找到myElement时终止filter()的方法?

我觉得我错过了明显的事情...

最佳答案

for (var i=0; i<arr.length; i++) {
    if (arr[i].key === 8) {
        console.log('FOUND ITEM AT KEY '+8);
        break;
    }
}

关于javascript - 更有效的数组搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27831484/

10-12 12:59
查看更多