[英]How to groupby and get average using underscorejs
如何對category
進行分組並使用下划線獲得平均值?
我有一個對象數組。 它應該按category
分組,並且Analytics
平均值是從val
屬性計算得出的,即1 + 2 =>3。3 /類別總數。 所以3/2 => 1.5
預期輸出: { Analytics: 1.5 }
[{
area:"Digital",
category:"Analytics",
qId:"wRHmpHHGzrYLsCEJ3",
type:"Reorganize",
userId:"M4JEJGiPZ8e9om9A",
val:1
},
{
area:"Digital",
category:"Analytics",
qId:"wRHmpHHGzrYLsCEJ3",
type:"Reorganize",
userId:"M4JEJGiPZ8e9om9A",
val:2
}]
謝謝
您可以按類別對對象進行分組 ,然后遍歷此結果對象中的所有鍵並減少值 :
var types = _.groupBy(array, 'category');
var result = _.mapObject(types, function(val, key) {
return _.reduce(val, function(memo, v) {
return memo + v.val;
}, 0) / val.length;
});
var array = [{ area:"Digital", category:"Analytics", qId:"wRHmpHHGzrYLsCEJ3", type:"Reorganize", userId:"M4JEJGiPZ8e9om9A", val:1 }, { area:"Digital", category:"Analytics", qId:"wRHmpHHGzrYLsCEJ3", type:"Reorganize", userId:"M4JEJGiPZ8e9om9A", val:2 }]; var types = _.groupBy(array, 'category'); var result = _.mapObject(types, function(val, key) { return _.reduce(val, function(memo, v) { return memo + v.val; }, 0) / val.length; }); console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.