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)