Более простой способ фильтрации данных - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь найти более быстрый способ фильтрации тегов ниже вместо использования 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 голосов
/ 21 ноября 2018

map, loop, для цикла и карты lodash из этой опции зацикливания самая быстрая карта lodash, так что я уверен, что вам нужно использовать lodash для отображения, никакая другая библиотека зацикливания не будет быстрее, чем lodash

ВотСравнение родной карты с картой Лодаша https://jsperf.com/native-map-vs-lodash-map

Очевидно, что Лодаш быстрее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...