如何在JavaScript中将对象中的值相乘

问题描述

我正在尝试创建一个函数,在该函数中我可以将一个对象的值相乘并返回总和。

例如:

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 }));

,

该函数有效,但是您错过了使用传递给该函数的对象的步骤。

如果您始终希望对象具有abc键,则可以使用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;
}