簡體   English   中英

如何使用underscore.js分組並獲得平均值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM