【问题标题】:Using lodash for grouping data使用 lodash 对数据进行分组
【发布时间】:2016-05-27 03:53:40
【问题描述】:

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

  • 姓名
  • 工资

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

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

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

如果其中一个工资不存在或给定年份为 0,则不会为今年创建对象外壳。

我尝试使用 _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 的中间数组。

【问题讨论】:

  • 如果您提供示例输入数据和示例输出,我们会更容易为您提供帮助。
  • 请输入完整的示例输入和完整的示例输出

标签: lodash


【解决方案1】:

不妨试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2021-10-23
    • 2018-01-09
    • 2022-01-12
    • 2019-10-07
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多