对象数组的过滤性能

Ell*_*one 3 javascript optimization performance object 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;
}
Run Code Online (Sandbox Code Playgroud)

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

rebuildList 是一个检查相同条件的函数,而不是 buildList

它会做同样的事情吗?(遍历每个元素)

你能想到一个更优化和更有效的方法来做到这一点吗?我buildList在我的项目中多次调用一个函数,它消耗了大量时间。

Sim*_*mar 5

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

关于性能,您应该在这里阅读:在 JavaScript 数组中查找项目的最快方法