javascript - 将嵌套对象 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]) {
}
}
};
解决方案
您可以迭代 的值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
推荐阅读
- php - Symfony/Sonata ModelType not working correctly
- php - Merge/combine 2 arrays with a common key
- django - 如何从 django-simple-history 解析查询集?
- php - PHP EACH ELEMENT IS NOT SUPPORT IN PHP8
- python-3.x - How to patch a certain user object?
- java - Regex match if all characters in a dictionary word are present in the phrase. The number of times each character occurs must also match in each other
- python-3.x - How can I send a random file out of a folder with my Discord bot?
- java - Eclipse and java- Method proposal Issues
- html - Gradient + Image Background whitout overlapping
- sql - How to count duplicates based on group by as well as see if values are present in the same field values?