JS 对象:
var saver = {
title: false,
preview: false,
body: false,
bottom: false,
locale: false
};
问题是如何检查所有值是否都是false?
我可以使用 $.each() jQuery 函数和一些标志变量,但可能有更好的解决方案?
最佳答案
更新版本。感谢 @BOB 指出您可以直接使用 values
:
Object.values(obj).every((v) => v === false)
此外,如果对象值是假(例如 >0、未定义、null、false
),不仅当它们严格为 false 时。
这是一个非常简单的解决方案,需要 JavaScript 1.8.5。
Object.keys(obj).every((k) => !obj[k])
示例:
obj = {'a': true, 'b': true}
Object.keys(obj).every((k) => !obj[k]) // returns false
obj = {'a': false, 'b': true}
Object.keys(obj).every((k) => !obj[k]) // returns false
obj = {'a': false, 'b': false}
Object.keys(obj).every((k) => !obj[k]) // returns true
或者你可以写
Object.keys(obj).every((k) => obj[k] == false)
Object.keys(obj).every((k) => obj[k] === false) // or this
Object.keys(obj).every((k) => obj[k]) // or this to return true if all values are true
请参阅Mozilla Developer Network Object.keys()'s reference欲了解更多信息。
关于javascript - 如何检查所有对象键是否都有假值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604734/