[英]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));
只需使用map
并reduce
:
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.