【问题标题】:Easier way to filter data更简单的数据过滤方法
【发布时间】:2019-04-24 05:50:44
【问题描述】:

我正在尝试找出一种更快的方法来过滤下面的标签,而不是使用三次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;
}

任何建议都非常感谢?

【问题讨论】:

  • 包含变量reviews 的示例对我们有很大帮助

标签: javascript arrays reactjs performance filter


【解决方案1】:

这个循环选项中的map、loop、for循环和lodash map最快的是lodash map,所以我确信你必须使用lodash for map,没有其他循环库比lodash更快

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

显然lodash更快

【讨论】:

    猜你喜欢
    • 2016-12-17
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 2015-04-03
    • 2014-03-12
    • 1970-01-01
    相关资源
    最近更新 更多