关于如何使用UnderscoreJS一起做grupby + sortby的任何建议?
有了以下收藏,我想找到每季最低的价格:
var d = [{
"price": 27.25,
"season": 2
},
{
"price": 10,
"season": 3
},
{
"price": 21,
"season": 2
}];
我能够使用以下内容进行分组:
_.chain(d).groupBy('season').map(function(value, key) {
return {
season: key,
obj: value
}
}).value();
让我:
[
{"season":"2","obj":[{"price":27.25,"season":2},{"price":21,"season":2}]},
{"season":"3","obj":[{"price":10,"season":3}]}
]
答案 0 :(得分:3)
试试这个:
var output = _.chain(d).groupBy("season").map(function (group) {
return _.chain(group).sortBy("price").first().value();
}).value();
答案 1 :(得分:1)
在map
函数中获取每个季节的最低价格:
_.chain(d).groupBy('season').map(function(value, key) {
return {
season: key,
price: _.chain(value).pluck('price').min().value()
}
}).sortBy('price').value();
答案 2 :(得分:1)
您可以使用_min
结合_.property
来提取群组中的最小价格:
var output = _.chain(d).groupBy('season').map(function (group) {
return _.min(group, _.property('price'));
}).value();