首页 > 解决方案 > JavaScript:使用 .forEach 向数组项添加新属性

问题描述

let foods = [
  { name: 'bread', carbs: 36, protein: 8, fat: 2 },
  { name: 'mayo mustard mix', carbs: 0, protein: 0, fat: 10 },
  { name: 'turkey', carbs: 0, protein: 25, fat: 1 },
  { name: 'cheese', carbs: 0, protein: 5, fat: 7 },
]

我需要通过将碳水化合物、蛋白质和脂肪相乘来计算卡路里,然后将结果加在一起。

我很坚持这个,我已经到了

foods.forEach((element, index, array => { })

但不确定从那里去哪里。

标签: javascriptarrayshigher-order-functions

解决方案


对于每个食物,获取它的三个值并保存计算,如果我没记错的话:),在一个新属性中calories

let foods = [ 
  { name: 'bread', carbs: 36, protein: 8, fat: 2 }, 
  { name: 'mayo mustard mix', carbs: 0, protein: 0, fat: 10 }, 
  { name: 'turkey', carbs: 0, protein: 25, fat: 1 }, 
  { name: 'cheese', carbs: 0, protein: 5, fat: 7 }
];

foods.forEach(food => {
  const { carbs = 0, protein = 0, fat = 0 } = food;
  food.calories = carbs * 4 + protein * 4 + fat * 9;
});

console.log(foods);


推荐阅读