首页 > 解决方案 > Javascript数组在不知道父键的情况下获取所有子值

问题描述

我想验证并检查是否存在任何具有真实值的现有对象,而我不知道如何直接访问所有子存在值,而无需我遍历父数组。下面显示结果。

{
 user1: Array(2)
  0: {exist: false}
  1: {exist: true}
 user2: Array(2)
  0: {exist: false}
  1: {exist: false}
}

标签: javascriptarrays

解决方案


如果您知道对象只有这么深,您可以使用someon Object.values()。你仍在循环遍历数组——没有办法避免这种情况——但至少它相当简洁:

let obj = {
  user1:[
   {exist: false},
   {exist: false}
  ],
  user2: [
   {exist: false},
   {exist: true}
  ]
 }
 
let t = Object.values(obj).some(arr => arr.some(o => o.exist === true))
// are some objects true?
console.log(t)

如果您的对象可以任意深,您将需要递归查看所有内容。


推荐阅读