筛选数据的简便方法

时间:2018-11-21 15:52:00

标签: javascript arrays reactjs performance filter

我正在尝试寻找一种更快的方法来过滤下面的标签,而不是使用map三次。

我稍微看了loadash及其过滤器功能。但似乎并没有帮助加快速度。

export function tagFilter(reviews, userTags) {

    const arr = [];

    map(reviews, (review) => {

        let count = 0;

        map(review.tags, (tag) => {
            map(userTags, (userTag) => {
                if (userTag.tag_data.id === tag.id) count += 1;
            });
        });

        arr.push({ review, count });

    });

    arr.sort((a, b) => b.count - a.count);

    const reviewArray = [];

    arr.forEach((reviewObject) => {
        reviewArray.push(reviewObject.review);
    });

    return reviewArray;
}

有什么建议值得赞赏?

1 个答案:

答案 0 :(得分:0)

此循环选项中的map,loop,for loop和lodash地图最快的是lodash地图,因此我敢肯定,您必须将lodash用于地图,没有其他循环库比lodash更快

这里是本地地图与lodash地图的比较 https://jsperf.com/native-map-vs-lodash-map

显然lodash更快