javascript - 通过嵌套属性获取父对象
问题描述
我有以下对象,一个带有数据库的数组,每个数据库都包含一个表集合,每个表都包含一个列集合。
我想获取父表,给定列的 Id 并试图避免迭代集合。只是一个非常简单干净的单行。
我最初是在尝试,但很快就受到了 Tables 不是数组而是不支持 .some 语句的集合这一事实的挑战。
let table = schema.find((database,index) => database.Tables.some((column,index) => column.Id === 1234));
是否有一种我忽略的聪明方法或转换技巧可以防止我不得不迭代整个结构?
解决方案
用于Object.values()
从 Tables 对象中获取列数组:
let table = schema.find(database => Object.values(database.Tables).some(column => column.Id === 1234));
或者,您可以Object.keys()
像这样使用和编写它:
let table = schema.find(database => Object.keys(database.Tables)
.some(columnName => database.Tables[columnName].Id === 1234));
推荐阅读
- vue.js - bootstrap-vue 表,Formatter 回调错误:您可能在组件渲染函数中有无限更新循环
- java - 如何打开安卓设备的前置手电筒(不是后置手电筒)
- angular - 如何在角度 11 的一个角度配置文件中配置所有所有 api url
- c - 我在 Windows 10 上找不到 /rootfs
- c# - DocuSign JWT Auth Error while requesting server, received a nonsuccessful HTTP code Error with response Body C# sdk
- laravel - 将标头中的刷新令牌发送到 Laravel 后端
- html - 我想取消阻止我的客户网站和我的生产网站从我自己的网站加载资产
- java - 如何在 Spring Boot API 请求中强制执行 DateTime 格式?
- ios - 是否可以从 macOS 应用程序编辑 iOS 文件?
- react-native - 使图像适合视图反应原生