javascript - 添加子对象的公共(public)属性并附加 Parent Key (Node.js)

标签 javascript node.js lodash

我想添加公共(public)属性,即同一键的 total_quantity_sold 并将其附加到父索引作为总数。

这是我的产品数组

{ '900001':
   [ anonymous {
       id: '900001',
       name: 'Pack1',
       product: 2017-11-02T13:49:25.596Z,
       total_quantity_sold: '1' },
     anonymous {
       id: '900001',
       name: 'Pack1',
       product: 2018-02-11T13:49:25.596Z,
       total_quantity_sold: '4' },
     anonymous {
       id: '900001',
       name: 'Pack1',
       product: 2017-12-02T13:49:25.596Z,
       total_quantity_sold: '1' } ],
  '900002':
   [ anonymous {
       id: '900002',
       name: 'Pack2',
       product: 2018-01-02T13:49:25.596Z,
       total_quantity_sold: '1' },
     anonymous {
       id: '900002',
       name: 'Pack2',
       product: 2017-11-02T13:49:25.596Z,
       total_quantity_sold: '1' },
     anonymous {
       id: '900002',
       name: 'Pack2',
       product: 2018-02-11T13:49:25.596Z,
       total_quantity_sold: '4' } ],}

我想对所有数量求和并将其附加到父键,以便我的最终数组看起来像这样。实际上我想要总计数以及每个日期的计数是填充图形所必需的。

 { '900001':
       'total' : 6
       [ {
           name: 'Pack1',
           product: 2017-11-02T13:49:25.596Z,
           total_quantity_sold: '1' },
          {
           name: 'Pack1',
           product: 2018-02-11T13:49:25.596Z,
           total_quantity_sold: '4' },
         {

           name: 'Pack1',
           product: 2017-12-02T13:49:25.596Z,
           total_quantity_sold: '1' } ],
      '900002':
       'total' : 7
       [ {

           name: 'Pack2',
           product: 2018-01-02T13:49:25.596Z,
           total_quantity_sold: '2' },
          {

           name: 'Pack2',
           product: 2017-11-02T13:49:25.596Z,
           total_quantity_sold: '1' },
        {

           name: 'Pack2',
           product: 2018-02-11T13:49:25.596Z,
           total_quantity_sold: '4' } ],}

谢谢

最佳答案

没问题!您可以通过遍历哈希表中的每个条目并将其替换为您想要就地 的目标对象来实现。我们还可以使用一个简单的 reducer 来获取总和 sold quantities!

ES7 方式

Object.entries(obj).forEach(a => {
  const [key, children] = a
  const total = children.reduce((p,c) => p+c.total_quantity_sold, 0)
  obj[key] = {total, children}
})

关于javascript - 添加子对象的公共(public)属性并附加 Parent Key (Node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48873927/

相关文章:

javascript - 如何在创建用户之前验证电子邮件?

javascript - Sails.js socket.io protobuf.js 编码消息导致错误 : "Illegal buffer" on decode in browser

javascript - loDash——有没有一种方法可以简化可读性

javascript - 如何从javascript中的数组中删除重复对象?

javascript - Strapi 上传的文件未显示在网站上

javascript - 对 lodash/debounce 中的第一个函数调用进行去抖处理

javascript - 无法加载资源错误 : the server responded with a status of 404(not found)

javascript - 从 angularJS 发布到 ColdFusion 函数

javascript - Cypress 与 OpenLayers - 如何模拟 ctrl + 鼠标拖动

javascript - 在函数内使用 "this"关键字访问全局属性