使用lodash分组数据

时间:2016-05-27 03:53:40

标签: lodash

有一个JS对象数组。 Object具有以下属性:

  • 姓名
  • 薪水

数组按(年份+名称)排序。给出“name”属性中只有2个不同的值。

目标是生成另一个JS数组,按年份排序,包含仅包含2个属性的对象:

  • 100 *(名称#1的工资)/(名称#2的工资)

如果其中一个工资不存在或者给定年份为0,那么今年不会创建对象shell。

我尝试使用_lodash(我不确定这是否是正确的工具):

var groupByYear =_.groupby(myArray, function(element){
    return element.year;
};

return _.map(groupByYear, function(el){
  if (el.size() == 2 and el[0].salary > 0 and el[1].salary > 0)
     return { "year": el[0].year , "percent": 100 * el[0].salary / el[1].salary };
}

但我不相信这是正确的做法;例如,创建名为groupByYear的中间数组。

1 个答案:

答案 0 :(得分:0)

尝试这个:

_.chain(arr)
  .groupBy('year')
  .map((salary, year) => [year, 100 * salary[0].salary / salary[1].salary])
  .sortBy('0')
  .value()