繁体   English   中英

数组数组中对象的总和值

[英]Sum values of objects in arrays of array

我试图从对象中加总值。 我有一系列对象数组。

(7) [Array(5), Array(29), Array(32), Array(20), Array(10), Array(1), Array(1)]

需要分别对每个数组对象的“数量”值求和,例如:

1: Array(29)
  0:
    id: "PXvWizOLCPbHCUzHxUoK"
    productName: "someProduct"
    productPrice: "146"
    quantity: 3
  1:
    id: "PXvWizOLCPbHCUzHxUoK"
    productName: "someProduct"
    productPrice: "156"
    quantity: 7 
   etc...

换句话说,需要得到数组[1],数组[2]中所有对象的“数量”总和...

一些尝试:

1)

 let quantityOfProduct = arrayOfArraysOfObjects[0].reduce((acc, current) => { return{ quantity: acc.quantity + current.quantity } }) 

2)

 let result:any = [] arrayOfArraysOfObjects[0].reduce((acc, current) => { result.push({[current.id]: acc.quantity +current.quantity}) }) 

以上尝试得到错误“减少未定义”,我也使用Typescript。

有什么建议或想法吗?

先感谢您。

考虑arrayOfArraysOfObjects是变量的名称。 你需要在主数组上使用map()并使用reduce()获得每个数组的总和

let res = arrayOfArraysOfObjects.map(x => x.reduce((ac,a) => ac + a.quantity,0));

只需使用mapreduce

const quantities = arrayOfArraysOfObjects.map(a => a.reduce((acc, { quantity }) => acc + +quantity, 0));
let res = 0;
arr.forEach((data1,index,arr)=>{
    data1.forEach(({qunt})=>{
        res+=qunt
    })
})
console.log(res)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM