首页 > 解决方案 > 通过嵌套属性获取父对象

问题描述

我有以下对象,一个带有数据库的数组,每个数据库都包含一个表集合,每个表都包含一个列集合。

控制台输出

我想获取父表,给定列的 Id 并试图避免迭代集合。只是一个非常简单干净的单行。

我最初是在尝试,但很快就受到了 Tables 不是数组而是不支持 .some 语句的集合这一事实的挑战。

let table = schema.find((database,index) => database.Tables.some((column,index) => column.Id === 1234));

是否有一种我忽略的聪明方法或转换技巧可以防止我不得不迭代整个结构?

标签: javascript

解决方案


用于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));

推荐阅读