1
votes

Somme des valeurs des objets dans des tableaux de tableau

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.


0 commentaires

3 Réponses :


1
votes

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));


0 commentaires

1
votes

Utilisez simplement map et reduce:

const quantities = arrayOfArraysOfObjects.map(a => a.reduce((acc, { quantity }) => acc + +quantity, 0));


0 commentaires

1
votes
let res = 0;
arr.forEach((data1,index,arr)=>{
    data1.forEach(({qunt})=>{
        res+=qunt
    })
})
console.log(res)

0 commentaires