Я новичок в Javascript и пытаюсь перебрать один вложенный массив объектов и фильтрую второй массив объектов на основе свойств первого.
Вот структуры обоих массивов:
const displayArr = {
sections: {
section_1: [
{
style: "single_select_cmp",
definition: {
table_name: "table_1",
field_name: "organization",
}
},
],
section_2: [
{
style: "single_select_cmp",
definition: {
table_name: "table_1",
field_name: "title",
}
},
]
}
};
const schemaArr = [
{
table_1: {
columns: [
{
description: "Tracking Number Desc",
display_name: "Tracking Number",
display_type: "number",
field: "tracking_number",
type: "int"
},
{
description: "Title Desc",
display_name: "Title",
display_type: "multiple lines of text",
field: "title",
type: "text"
},
{
description: "Description Desc",
display_name: "Description",
display_type: "multiple lines of text",
field: "description",
type: "text"
},
{
description: "Organization Desc",
display_name: "Organization",
display_type: "single line of text",
field: "organization",
type: "text"
}
]
}
},
{
table_2: { columns: [ {...}, {...} ] }
},
{
table_3: { columns: [ {...}, {...} ] }
}
...
]
Я пытаюсь отфильтровать schemaArr
по table_name
и field_name
в displayArr
. Когда есть совпадение, я бы хотел предоставить description
и display_name
для displayArr. Например:
const displayArr = {
sections: {
section_1: [
{
style: "single_select_cmp",
definition: {
table_name: "table_1",
field_name: "organization",
description: "Organization Description", //***
display_name: "Organization" //***
}
},
],
section_2: [
{
style: "single_select_cmp",
definition: {
table_name: "table_1",
field_name: "title",
description: "Title Description", //***
display_name: "Title" //***
}
},
]
}
};
В этом примере я извлекаю только из table_1
, однако может быть любое количество таблиц, на которые есть ссылки в displayArr
.
Для меня, учитывая, что эти объекты вложены, это более сложная ситуация отображения / фильтрации. Мне интересно, как правильно и эффективно использовать карту, фильтр и / или forEach.
Заранее благодарю за помощь! Очень ценю это.