Tengo el siguiente objeto, una matriz con bases de datos, cada una de las cuales contiene una colección de tablas, cada una de las cuales contiene una colección de columnas.
Quiero obtener la tabla principal, dada la identificación de una columna e intenté evitar iterar sobre la colección. Solo una sola línea limpia muy simple.
Inicialmente lo estaba intentando, pero rápidamente me vi cuestionado por el hecho de que Tables no es una matriz, sino una colección que no admite algunas declaraciones.
let table = schema.find((database,index) => database.Tables.some((column,index) => column.Id === 1234));¿Hay alguna forma inteligente o truco de conversión que haya pasado por alto que me impida tener que iterar toda la estructura?
Use Object.values() para obtener una matriz de columnas de su objeto Tables:
let table = schema.find(database => Object.values(database.Tables).some(column => column.Id === 1234)); Alternativamente, podría usar Object.keys() y escribirlo así:
let table = schema.find(database => Object.keys(database.Tables) .some(columnName => database.Tables[columnName].Id === 1234));