代码之家  ›  专栏  ›  技术社区  ›  Omair Nabiel

添加子对象的公共属性,并使用父键(Node.js)将其追加

  •  0
  • Omair Nabiel  · 技术社区  · 7 年前

    我想添加相同键的公共属性,即total\u quantity\u Seld,并将其与父索引一起附加为total。

    这是我的产品阵列

    { '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' } ],}
    

    非常感谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   AP. Munish    7 年前

    当然可以您可以通过传递哈希表中的每个条目来完成,并将其替换为您想要的目标对象 到位 . 我们还可以使用一个简单的减速机来获得 quantities sold !

    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}
    })