Я работаю с большим массивом объектов. Я упростил мою структуру данных следующим образом. Каждый объект имеет id
, а каждый id
имеет от 0 до 4 массивов, связанных с ним. Имена массивов генерируются динамически и будут содержать не более 2 элементов и могут быть любым количеством имен в зависимости от других требований. Мой начальный объект выглядит так:
const arr = [{id: "12345", array1: ["Banana", "Apple"], array2: ["Orange", "Strawberry"]},
{id: "12345", array0: ["Potato", "Tomato"]},
{id: "54321", array0: ["Kiwi", "Apple"], array1: ["Potato", "Onion"]},
{id: "54321", array2: ["Orange", "Tomato"], array0: ["Kiwi", "Banana"]},
{id: "13579", array1: ["Banana", "Apple"], array2: ["Grapefruit", "Onion"]},
{id: "13579", array1: ["Potato", "Banana"], array2: ["Orange", "Pepper"]}]
У меня есть массив поиска. Каждый объект имеет id
и type
const lookup = [{id: "12345", type: "Banana"},
{id: "12345", type: "Kiwi"},
{id: "12345", type: "Apple"},
{id: "54321", type: "Strawberry"}
{id: "54321", type: "Tomato"},
{id: "54321", type: "Banana"},
{id: "13579", type: "Tomato"},
{id: "13579", type: "Grapefruit"}]
Мне нужно использовать объект «поиск» для любого соответствующего идентификатора, который имеет type
в любом из соответствующих массивов id's
. Мне нужно удалить это свойство из объекта. Поиски должны быть 1: 1, поэтому мой результирующий массив объектов будет выглядеть примерно так
const result = [{id: "12345", array2: ["Orange", "Strawberry"]},
{id: "12345", array0: ["Potato", "Tomato"]},
{id: "54321", array0: ["Kiwi", "Apple"], array1: ["Potato", "Onion"]},
{id: "54321"},
{id: "13579", array1: ["Banana", "Apple"]},
{id: "13579", array1: ["Potato", "Banana"], array2: ["Orange", "Pepper"]}]
Часть, над которой я зацикливаюсь, не знает заранее имя ключа объекта, а также как искать записи объекта для этого ключа с помощью свойства типа объекта lookup
. Сначала я хотел использовать Object.values
, но тогда я не уверен, как удалить свойство объекта, если я его использую.