我正在尝试寻找一种更快的方法来过滤下面的标签,而不是使用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;
}
有什么建议值得赞赏?
答案 0 :(得分:0)
此循环选项中的map,loop,for loop和lodash地图最快的是lodash地图,因此我敢肯定,您必须将lodash用于地图,没有其他循环库比lodash更快
这里是本地地图与lodash地图的比较 https://jsperf.com/native-map-vs-lodash-map
显然lodash更快