如何使用Lodash将多个键分组并在一个对象数组中求和?

米尔科·卡塔布里加(Mirco Cattabriga)

在下面的阵列,我要通过组itemreason,然后计算出总的quantity

item_movements = [
  {
    item: "Apple",
    reason: 1,
    quantity: 5
  },
  {
    item: "Banana",
    reason: 2,
    quantity: 10
  },
  {
    item: "Apple",
    reason: 1,
    quantity: 5
  },
  {
    item: "Banana",
    reason: 1,
    quantity: 8
  },
  {
    item: "Apple",
    reason: 2,
    quantity: 3
  },
  {
    item: "Banana",
    reason: 1,
    quantity: 8
  }
];

我想要达到的结果是:

item_totals = [
  {
    item: "Apple",
    1: 10,
    2: 3
  },
  {
    item: "Banana",
    1: 16,
    2: 10
  }
];

我可以item使用Loadash进行分组,如下所示:

({
  itemMovementbyItem() {
    var result = _(this.item_movements)
      .groupBy(x => x.item)
      .map((value, key) => ({
        item: key,
        item_movements: value
      }))
      .value()

    return result
  }
})

但是我很难再分组了reason

妮娜·斯科茨(Nina Scholz)

按分组后,您可以直接汇总属性'item'

function itemMovementbyItem(array) {
    return _(array)
        .groupBy('item')
        .map(group => ({
            item: group[0].item,
            1: _.sumBy(group, o => o.reason === 1 ? o.quantity : 0),
            2: _.sumBy(group, o => o.reason === 2 ? o.quantity : 0)
        }))
        .value();
}

var item_movements = [{ item: "Apple", reason: 1, quantity: 5 }, { item: "Banana", reason: 2, quantity: 10 }, { item: "Apple", reason: 1, quantity: 5 }, { item: "Banana", reason: 1, quantity: 8 }, { item: "Apple", reason: 2, quantity: 3 }, { item: "Banana", reason: 1, quantity: 8 }];

console.log(itemMovementbyItem(item_movements));
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Coffeescript中,如何将一个对象的数组按一个属性分组?

来自分类Dev

使用 lodash 从数组中删除一个对象

来自分类Dev

如何将一个类别的对象分组为另一个类别中的对象数组?

来自分类Dev

使用 javascript 或 Lodash 将数组值添加到一个 json 对象中

来自分类Dev

如何将键数组和值数组合并到一个对象中?

来自分类Dev

使用相同的键,将值转换为数组,将多个对象转换为一个对象

来自分类Dev

使用相同的键,将值转换为数组,将多个对象转换为一个对象

来自分类Dev

如何使用键从json数组中获取json对象属于一个json对象

来自分类Dev

你如何从数组中取出一个对象并在它上面使用 instanceof ?

来自分类Dev

如何正确使用lodash将数组内的对象分组?

来自分类Dev

使用 Lodash 对另一个对象中的特定值进行分组

来自分类Dev

是否可以使用LINQ对一个新对象中的多个对象的值求和

来自分类Dev

如何对一个值进行分组,将一个列求和并在另一列中保持相等的值?

来自分类Dev

我如何在需要按一个键列分组的3个表中合并和求和

来自分类Dev

如何使用Redis将多个值添加到一个键中

来自分类Dev

如何使用lodash对对象数组中的属性进行分组?

来自分类Dev

如何使用localstorage和Jquery从多个单击事件中生成一个具有存储值数组的对象键

来自分类Dev

如何找到一个对象键,该对象键的数组中包含一个值?

来自分类Dev

将一个数组(键)中的对象数组变成另一个数组(值)

来自分类Dev

如何从多个键中不为空的数组中获取第一个键

来自分类Dev

使用lodash通过键从另一个对象的组创建一个对象

来自分类Dev

在arrray中,多个对象需要使用javascript来求和一个总和值

来自分类Dev

在arrray中,多个对象需要使用javascript来求和一个总和值

来自分类Dev

如何从数组中获取一个求和数组

来自分类Dev

如何在一个雄辩的json字段中求和,该字段包含Eloquent的对象数组

来自分类Dev

如何遍历对象数组,将键推到另一个数组

来自分类Dev

遍历对象数组的json对象,将一个键的值信任为Angular中的HTML

来自分类Dev

如何使用一个重复键和另一个唯一键过滤对象数组

来自分类Dev

如何通过键减少对象数组并在javascript中求和它的值

Related 相关文章

  1. 1

    在Coffeescript中,如何将一个对象的数组按一个属性分组?

  2. 2

    使用 lodash 从数组中删除一个对象

  3. 3

    如何将一个类别的对象分组为另一个类别中的对象数组?

  4. 4

    使用 javascript 或 Lodash 将数组值添加到一个 json 对象中

  5. 5

    如何将键数组和值数组合并到一个对象中?

  6. 6

    使用相同的键,将值转换为数组,将多个对象转换为一个对象

  7. 7

    使用相同的键,将值转换为数组,将多个对象转换为一个对象

  8. 8

    如何使用键从json数组中获取json对象属于一个json对象

  9. 9

    你如何从数组中取出一个对象并在它上面使用 instanceof ?

  10. 10

    如何正确使用lodash将数组内的对象分组?

  11. 11

    使用 Lodash 对另一个对象中的特定值进行分组

  12. 12

    是否可以使用LINQ对一个新对象中的多个对象的值求和

  13. 13

    如何对一个值进行分组,将一个列求和并在另一列中保持相等的值?

  14. 14

    我如何在需要按一个键列分组的3个表中合并和求和

  15. 15

    如何使用Redis将多个值添加到一个键中

  16. 16

    如何使用lodash对对象数组中的属性进行分组?

  17. 17

    如何使用localstorage和Jquery从多个单击事件中生成一个具有存储值数组的对象键

  18. 18

    如何找到一个对象键,该对象键的数组中包含一个值?

  19. 19

    将一个数组(键)中的对象数组变成另一个数组(值)

  20. 20

    如何从多个键中不为空的数组中获取第一个键

  21. 21

    使用lodash通过键从另一个对象的组创建一个对象

  22. 22

    在arrray中,多个对象需要使用javascript来求和一个总和值

  23. 23

    在arrray中,多个对象需要使用javascript来求和一个总和值

  24. 24

    如何从数组中获取一个求和数组

  25. 25

    如何在一个雄辩的json字段中求和,该字段包含Eloquent的对象数组

  26. 26

    如何遍历对象数组,将键推到另一个数组

  27. 27

    遍历对象数组的json对象,将一个键的值信任为Angular中的HTML

  28. 28

    如何使用一个重复键和另一个唯一键过滤对象数组

  29. 29

    如何通过键减少对象数组并在javascript中求和它的值

热门标签

归档