查找任意键值是否为 true

Hon*_*ngh 1 javascript

你好,我想找出一个对象是否有任何键值是正确的。

以下仅适用于没有嵌套对象的对象。

我正在尝试检查对象中的任何键(无论父项还是子项)是否具有真实值

const odb = {
  "all": true,
  "allA": false,
  "allB": false,
  "allC": {
    "allD": false,
    "allE": false,
  }
}


const isAnyKeyValueTrue = o => !Object.keys(o).find(k => !o[k]);

console.log(isAnyKeyValueTrue(odb));
Run Code Online (Sandbox Code Playgroud)

moc*_*cha 5

检查该值是否是一个对象,如果是,则isAnyKeyValueTrue再次调用。另外,为了在语义上更加正确,我使用somefind. 我用它&& o[k]来确保null没有赋予该函数(自 以来typeof null === "object")。

const odb = {
  "all": false,
  "allA": false,
  "allB": false,
  "allC": {
    "allD": false,
    "allE": { "allF": true },
  }
}


const isAnyKeyValueTrue = o => Object.keys(o).some(k => typeof o[k] === "object" && o[k] ? isAnyKeyValueTrue(o[k]) : o[k] === true);

console.log(isAnyKeyValueTrue(odb));
Run Code Online (Sandbox Code Playgroud)