javascript - Javascript数组在不知道父键的情况下获取所有子值
问题描述
我想验证并检查是否存在任何具有真实值的现有对象,而我不知道如何直接访问所有子存在值,而无需我遍历父数组。下面显示结果。
{
user1: Array(2)
0: {exist: false}
1: {exist: true}
user2: Array(2)
0: {exist: false}
1: {exist: false}
}
解决方案
如果您知道对象只有这么深,您可以使用some
on 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)
如果您的对象可以任意深,您将需要递归查看所有内容。
推荐阅读
- angular - collecting a list sent from the backend in angular
- ruby-on-rails - How do I write a Rails finder method through a chain of belongs_to associations?
- docker - 我在为 golang api 构建 docker 时遇到问题
- amazon-web-services - S3 storage class: What is the actual difference between STANDARD and STANDARD_IA?
- drools - 确定流口水规则未触发的原因
- asp.net - 如何强制 VB.NET 脚本在 ASP.NET WebForms 中的页面本身之前运行?
- javascript - 基于其他自动完成输入的 jQuery 自动完成选项
- c# - ASP.NET Core 根据声明提交值
- jq - 有没有更好的方法在 jq 中编写嵌套条件?
- angular - Angular 7 NGB 手风琴菜单未呈现