Javascript 检查对象中是否有任何键值为false

Javascript 检查对象中是否有任何键值为false,javascript,Javascript,问题: 我正在寻找一个简单的解决方案来检查对象中是否有任何键值false 我有一个具有多个唯一键的对象,但是,它们只包含布尔值(true或false) 我知道我可以通过以下行获得对象中的关键帧数: Object.keys(ob).length // returns 3 是否有一个内置的方法来检查任何键值是否为false,而不必遍历对象中的每个键 解决方案: 要检查是否有任何键-请使用 要检查所有键是否正确,请使用 您可以使用数组。一些方法: var hasFalseKeys = Object

问题:

我正在寻找一个简单的解决方案来检查对象中是否有任何键值
false

我有一个具有多个唯一键的对象,但是,它们只包含布尔值(
true
false

我知道我可以通过以下行获得对象中的关键帧数:

Object.keys(ob).length // returns 3
是否有一个内置的方法来检查任何键值是否为false,而不必遍历对象中的每个键


解决方案:

要检查是否有任何键-请使用

要检查所有键是否正确,请使用



您可以使用
数组。一些方法:

var hasFalseKeys = Object.keys(ob).some(k => !ob[k]);

您可以创建一个箭头函数
isAnyKeyValueFalse
,使用和在应用程序中重用它

代码:

const ob={
斯塔克:没错,
是的,
网站:真的
};
常量isAnyKeyValueFalse=o=>!!key(o).find(k=>!o[k]);

console.log(isAnyKeyValueFalse(ob))以下是我将如何做到这一点:

Object.values(ob).includes(false);      // ECMAScript 7

// OR

Object.values(ob).indexOf(false) >= 0;  // Before ECMAScript 7

检查是否所有值都为false

Object.values(ob).every(v => !v); 

简短回答“否”,你必须循环,并且循环不会显著增加页面的负载,所以我不明白为什么你不能使用“不必循环遍历对象中的每个键”,但这更难……你会考虑诸如“代码>数组”(MAP)(<)>代码>“循环”吗?<代码> /:false [,}] /测试(JSON.StrugI化(OB))
@epascarello-太棒了。。。你也可以使用
Object.values
@Florent-是的-但一般逻辑仍然是一样的-获取值,用
一些
每一个
检查/all/键是否为假有类似的方法吗?@Kyle.Belanger-你可以使用上面相同的逻辑,只要颠倒它就可以了。或者使用
every
-
var-allFalseKeys=Object.keys(ob).every(k=>!ob[k])
var hasFalseKeys = Object.keys(ob).some(k => !ob[k]);
Object.values(ob).includes(false);      // ECMAScript 7

// OR

Object.values(ob).indexOf(false) >= 0;  // Before ECMAScript 7
Object.values(ob).every(v => !v);