题:
我正在寻找一个简单的解决方案来检查对象中是否有任何键值false.
我有一个带有几个唯一键的对象,但是,它们只包含布尔值(true或false)
var ob = { stack: true,
overflow: true,
website: true
};
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下行获取Object中的键数:
Object.keys(ob).length // returns 3
Run Code Online (Sandbox Code Playgroud)
是否有内置方法来检查是否有任何键值为false而不必遍历对象中的每个键?
解:
要检查是否有任何键 - 使用Array.prototype.some().
// to check any keys are false
Object.keys(ob).some(k => !ob[k]); // returns false
Run Code Online (Sandbox Code Playgroud)
要检查是否所有键 - 使用Array.prototype.every().
// to check if all keys are false
Object.keys(ob).every(k => !ob[k]); // returns false
Run Code Online (Sandbox Code Playgroud)
tym*_*eJV 17
您可以使用以下Array.some方法:
var hasFalseKeys = Object.keys(ob).some(k => !ob[k]);
Run Code Online (Sandbox Code Playgroud)
这是我将如何做到的:
Object.values(ob).includes(false); // ECMAScript 7
// OR
Object.values(ob).indexOf(false) >= 0; // Before ECMAScript 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6466 次 |
| 最近记录: |