问题描述
我正在尝试创建一个函数,在该函数中我可以将一个对象的值相乘并返回总和。
例如:
let object = {
'a': 4,'b': 10,'c': 5
}
我的代码如下:
function sumOfValues(testObject) {
let sumOfValues = (a * b * c)
return sumOfValues
}
let testObject = {
'a': 4,'c': 5
}
sumOfValues(testObject)
解决方法
您可以从对象中获取所有值,然后返回所有值的乘积。
function productOfValues(object) {
return Object.values(object).reduce((a,b) => a * b);
}
console.log(productOfValues({ a: 4,b: 10,c: 5 }));
,
该函数有效,但是您错过了使用传递给该函数的对象的步骤。
如果您始终希望对象具有a
,b
和c
键,则可以使用object destructuring assignment来使用暴露并在{{ 1}}功能。
sumOfValues
,
let object = {
'a': 4,'b': 10,'c': 5
}
let mult = 1;
for(let key of Object.keys(object)){
mult *= object[key]
}
console.log(mult)
,
如果该对象仅具有3个属性,即a,b,c
,则其含义直接,
const sumOfValues = (obj) => { return obj.a * obj.b * obj.c; }
但是,如果键是可变的和动态的,则需要以下内容,
const sumOfValues = (obj) => {
let sum = 1;
Object.keys(obj).forEach(key => sum = sum*obj[key]);
return sum;
}