我有一个字典,其中包含下面显示的键和值。
如果字典中的所有值(总和)等于1,我希望显示警告。
我是JavaScript的新手,但已设法在下面提出代码。它没有用,但我认为我的方法正确。
for (lstLength.hasOwnProperty(key)) {
if (sum(lstLength[key]] == 0)){
window.alert("no data!")
}
}
感谢您提前提供任何帮助。
答案 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!");
}