Javascript数组在不知道父键的情况下获取所有子值

时间:2018-09-18 02:47:17

标签: javascript arrays

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

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

2 个答案:

答案 0 :(得分:0)

如果您知道对象只有这么深,则可以在some上使用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)

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

答案 1 :(得分:-1)

您不能。您可以先查询父键,再查询子键,或者先循环所有父键,再查询子键。