首页 > 解决方案 > 将嵌套对象 JavaScript 中的键值相乘

问题描述

需要创建一个接受桶和产品的计算函数。bucket 是一个包含我们将要购买的零件的对象,而 items 是一个包含商店零件价格的对象。

请解释我该怎么做,扩展..

const bucket = {
  display: 100,
  wheel: 40,
  cpu: 80,
}

const items = {
  amazobot: {
    wheel: 20.5,
  },
  robozetka: {
    display: 36,
    cpu: 50.30,
  },
}

calculateCost(bucket, products) === 8374

是)我有的:

const calculate = function(bucket, products) {

  for (const key in products) {
    for (const prop in products[key]) {

    }
  }

};

标签: javascriptjavascript-objects

解决方案


您可以迭代 的值items并获取 的键/值bucket以获取产品并对所有产品求和。

const
    calculateCost = (bucket, products) =>
        Object.values(products).reduce((sum, object) =>
            Object.entries(bucket).reduce((s, [k, v]) => s + (bucket[k] || 0) * v,
            sum
        ),
        0
    ),
    bucket = { display: 100, wheel: 40, cpu: 80 },
    items = { amazobot: { wheel: 20.5 }, robozetka: { display: 36, cpu: 50.30 } };

console.log(calculateCost(bucket, items)); // 8374


推荐阅读