题:
我正在寻找一个简单的解决方案来检查对象中的任何键值是否为false.
我有一个带有几个唯一键的对象,但是,它们只包含布尔值(true或false)
var ob = { stack: true,overflow: true,website: true };
我知道我可以使用以下行获取Object中的键数:
Object.keys(ob).length // returns 3
是否有内置方法来检查是否有任何键值为false而不必遍历对象中的每个键?
解:
检查是否有任何键 – 使用Array.prototype.some()
.
// to check any keys are false Object.keys(ob).some(k => !ob[k]); // returns false
检查是否所有键 – 使用Array.prototype.every()
.
// to check if all keys are false Object.keys(ob).every(k => !ob[k]); // returns false
解决方法
您可以使用Array.some方法:
var hasFalseKeys = Object.keys(ob).some(k => !ob[k]);