Javascript检查对象值的总和是否等于0

时间:2018-04-22 15:09:32

标签: javascript for-loop sum

我有一个字典,其中包含下面显示的键和值。

image of dict

如果字典中的所有值(总和)等于1,我希望显示警告。

我是JavaScript的新手,但已设法在下面提出代码。它没有用,但我认为我的方法正确。

 for (lstLength.hasOwnProperty(key)) {
    if (sum(lstLength[key]] == 0)){
        window.alert("no data!")
    }
 }

感谢您提前提供任何帮助。

4 个答案:

答案 0 :(得分:1)



 var sum = 0;
 for (lstLength.hasOwnProperty(key)) {
    sum += Number(lstLength[key])
 }
 if (sum == 0)){
    window.alert("no data!")
 }




答案 1 :(得分:1)

您可以使用Object.values将对象转换为数组。使用reduce对值进行求和。

像:

Object.values(lstLength).reduce((c, v) => c + v, 0)

示例代码:(带值)



let lstLength = {
  'property1': 3,
  'property2': 4,
  'property3': 5,
  'property4': 6,
};

if (Object.values(lstLength).reduce((c, v) => c + v, 0) == 0) console.log('no data!')
else console.log('with data!')




示例代码:(没有值)



let lstLength = {
  'property1': 0,
  'property2': 0,
  'property3': 0,
  'property4': 0,
};

if (Object.values(lstLength).reduce((c, v) => c + v, 0) == 0) console.log('no data!')
else console.log('with data!')




答案 2 :(得分:0)

如果您想在

中使用
let lstLength = {
  'propA': 0,
  'propB': 0,
};

sum = 0
for (prop in lstLength) {
  sum += lstLength[prop]
}

if (sum === 0) {
  alert('empty list')
} else {
  alert('valid list')
}

答案 3 :(得分:0)

您不必总结以检查是否有数据

if(Math.max(...Object.values(lstLength)) === 0) {
    window.alert("no data!");
}