代码之家  ›  专栏  ›  技术社区  ›  Pranta Saha

如何使用javascript从数组中获取和?

  •  -3
  • Pranta Saha  · 技术社区  · 6 年前
    var data =[
        {
            name:"xyz",
            meals:[
             {num:3.5},{num:4 },{num:6.5},{num:3}
                ],
            deposits:[
                {date:"", amount:3000},
                {date:"", amount:2400},
                {date:"", amount:300},
            ];
        },
        {
            name:"abc",
            meals:[
             {num:3.5},{num:4 },{num:6.5},{num:3}
                ],
            deposits:[
                {date:"", amount:3000},
                {date:"", amount:2400},
                {date:"", amount:300},
            ];
        }
    ];
    

    我想得到每个名字或物品的餐费和押金。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Nikhil Aggarwal    6 年前

    使用 Array.map Array.reduce

    var data =[{name:"xyz",meals:[{num:3.5},{num:4 },{num:6.5},{num:3}],deposits:[{date:"", amount:3000},{date:"", amount:2400},{date:"", amount:300}]},{name:"abc",meals:[{num:3.5},{num:4 },{num:6.5},{num:3}],deposits:[{date:"", amount:3000},{date:"", amount:2400},{date:"", amount:300}]}];
        
    let result = data.map(({name, meals, deposits}) => ({name, meals : meals.reduce((a,c) => a + c.num, 0), deposits : deposits.reduce((a,c) => a + c.amount, 0)}));
    console.log(result);