Bonjour J'ai ces objets dans un tableau et je veux obtenir le total des prix après plusieurs prix après avoir multiplié chaque prix avec sa quantité.
const raw = [{a: 1}, {a: 2}, {a: 3}, {b: 4}, {b: 5}];
const calcSums = someArray => someArray
.reduce( (sums, val) => {
Object.keys(val)
.forEach( v =>
sums[`sum-${v}`] = !sums[`sum-${v}`] ? val[v] : sums[`sum-${v}`] + val[v] );
return sums;
}, {} );
console.log(calcSums(raw));
// the method is generic, so this works too (as long as the values are numbers)
const raw2 = [{a: 1, b:3, c:7}, {a: 2}, {a: 3}, {b: 4}, {b: 5}, {c: 9}];
console.log(calcSums(raw2));
5 Réponses :
Vous pouvez utiliser la carte et réduire:
p>
let prods = [
{
productId:55,
productName:"Libero",
productImage:"https://www.albadrbakelser.se/en/wp-content/uploads/sites/2/2019/08/albadr-logo-background.jpg",
productQuantity:7,
productPrice:100
},
{
productId:56,
productName:"Nam Libero Tempore",
productImage:"https://www.albadrbakelser.se/en/wp-content/uploads/sites/2/woocommerce-placeholder.png",
productQuantity:8,
productPrice:150
}
]
var total = prods.map(x=>x.productQuantity*x.productPrice).reduce((a,b)=>a+b)
console.log(total) Vous pouvez utiliser p> array.reduce code> pour agréger les données d'un tableau d'objets: let input = [
{
productId:55,
productName:"Libero",
productImage:"https://www.albadrbakelser.se/en/wp-content/uploads/sites/2/2019/08/albadr-logo-background.jpg",
productQuantity:7,
productPrice:100
},
{
productId:56,
productName:"Nam Libero Tempore",
productImage:"https://www.albadrbakelser.se/en/wp-content/uploads/sites/2/woocommerce-placeholder.png",
productQuantity:8,
productPrice:150
}
]
let result = input.reduce((acc,cur) => acc + cur.productQuantity * cur.productPrice, 0);
console.log(result);
let totalPrice = someArr.reduce((total, item) => {
total + (item.productQuantity * item.productPrice)
}, 0);
Bien que ce code puisse résoudre le problème de l'OP, il est préférable d'inclure une explication sur la manière dont votre code répond à la question de l'OP. De cette manière, les futurs visiteurs peuvent apprendre de votre message et l'appliquer à leur propre code. Donc, ce n'est pas un service de codage, mais une ressource pour la connaissance. De plus, de haute qualité, des réponses complètes sont plus susceptibles d'être évitées. Ces caractéristiques, ainsi que l'exigence selon laquelle tous les postes sont autonomes, sont certaines des forces de manière à ce que la plate-forme, qui la différencie des forums. Vous pouvez modifier pour ajouter des informations supplémentaires et / ou pour compléter vos explications avec la documentation de la source.
Si je comprends bien correctement, vous essayez d'obtenir un seul numéro à la fin avec la valeur totale de tous vos stocks. Essayez ceci:
Merci mais je ne savais vraiment pas comment obtenir la productivité et le producteur en même temps quand je les boucle
J'espère que cela aide
p>
var total = 0;
for(let obj of arr){
obj.mult = obj.productQuantity * obj.productPrice;
}
for(let obj of arr){
total += obj.mult;
}
console.log(total);