J'essaye de faire la somme des valeurs des objets. J'ai un tableau de tableaux d'objets.
let result:any = [] arrayOfArraysOfObjects[0].reduce((acc, current) => { result.push({[current.id]: acc.quantity +current.quantity}) })
doit additionner la valeur de "quantité" de l'objet de chaque tableau séparément, par exemple :
let quantityOfProduct = arrayOfArraysOfObjects[0].reduce((acc, current) => { return{ quantity: acc.quantity + current.quantity } })
en d'autres termes, il faut obtenir la somme totale de "quantité" pour tous les objets du tableau [1], tableau [2] ...
Quelques tentatives:
1) p>
1: Array(29) 0: id: "PXvWizOLCPbHCUzHxUoK" productName: "someProduct" productPrice: "146" quantity: 3 1: id: "PXvWizOLCPbHCUzHxUoK" productName: "someProduct" productPrice: "156" quantity: 7 etc...
2)
(7) [Array(5), Array(29), Array(32), Array(20), Array(10), Array(1), Array(1)]
avec les tentatives ci-dessus, l'erreur "réduire n'est pas définir", j'utilise également Typescript.
Une suggestion ou une idée?
Merci d'avance.
3 Réponses :
Considérez que arrayOfArraysOfObjects
est le nom de la variable. Vous devez utiliser map ()
sur le tableau principal et obtenir la somme de chaque tableau en utilisant reduce()
let res = arrayOfArraysOfObjects.map(x => x.reduce((ac,a) => ac + a.quantity,0));
Utilisez simplement map
et 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)