繁体   English   中英

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

[英]Javascript check if the sum of object values is equal to 0

我有一本包含下面显示的键和值的字典。

字典的图像

我希望如果字典中的所有值(所有总和)均等于1时出现警告。

我对JavaScript非常陌生,但是设法提出了下面的代码。 它不起作用,但是我认为我的工作正确。

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

感谢您的任何帮助。

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

您可以使用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!') 

如果您想在中使用for


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

您不必总和就可以检查是否有数据

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM