gpt4 book ai didi

javascript - 使用下划线合并重复的 Backbone 模型数据

转载 作者:行者123 更新时间:2023-11-30 18:10:40 24 4
gpt4 key购买 nike

我有一个集合,其中有一堆模型,如下例所示:

{
metricName : 'clicks',
metricValue : 100
}

我想要的是搜索集合并将所有具有相同 metricName 的模型合并到一个模型中,该模型具有所有值的总和。

所以

{
metricName : 'clicks',
metricValue : 100
}

{
metricName : 'otherMetric',
metricValue : 100
}

{
metricName : 'clicks',
metricValue : 100
}

变成

{
metricName : 'clicks',
metricValue : 200
}

{
metricName : 'otherMetric',
metricValue : 100
}

我试图通过使用下划线尽可能高效、轻松地解决这个问题。

我可以看到一种解决方案是使用 _.each 并循环遍历并跟踪指标名称,同时对值求和并消除重复项(听起来很蹩脚)。

我的问题是是否有另一种更好的方法来使用其他方法中的一种来做到这一点。我可以看到 map 、查找、查找位置、过滤器等可能是选项,但我不确定。

最佳答案

你可以用 groupByreduce 做一些可爱的事情:

collection.reset(_.map(_.groupBy(collection.toJSON(), 'metricName'), function(group) {
return _.reduce(group, function(memo, item) {
if(!memo) return item;
memo.metricValue+=item.metricValue;
return memo;
});
}));

关于javascript - 使用下划线合并重复的 Backbone 模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14635706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com