过滤对象数组的性能

时间:2015-07-16 11:14:24

标签: javascript performance object optimization filter

如果我有一个名为filteredList的对象数组和一个函数,例如:

function    buildList(filteredList, p1, p2, p3) {
    var resultList = [];

    for (var i =0; i < filteredList.length; i++) {
        if (filteredList[i].type === 'global' && filteredList[i].p1 === p1 && filteredList[i].p2 === p2 && filteredList[i].p3 === p3)
            resultList.push(filteredList[i]);
    }

    return resultList;
}

如果不是像我一样循环遍历我的数组,那么性能差异会是什么,我会做类似的事情:filteredList.filter(rebuildList)

rebuildList是一个检查与buildList

相同条件的函数

会这样做吗? (循环遍历每个元素)

您能想到更优化和有效的方法吗?我在项目中多次调用buildList这样的函数,耗费了大量时间。

1 个答案:

答案 0 :(得分:3)

您可以使用Array.prototype.filter方法。示例即将推出

关于表现,你应该在这里阅读:Fastest way to find an item in a JavaScript Array