В последнее время я действительно стараюсь изо всех сил пытаться найти способы избавиться от необходимости делать вложенные методы for-loop / forEach и действительно оптимизировать столько, сколько могу, но я немного застрял на этом. У меня есть список данных, который представляет собой массив объектов, который также содержит массив объектов. Я знаю, как сделать это с отдельными функциями, если все, что мне нужно, это атрибуты из второго вложенного массива, но моя проблема в том, что мне нужны атрибуты из обоих, и я не уверен, как я могу выполнить sh это без использования вложенных циклов .
Вот пример того, как выглядят данные:
let data = [{Id: '1234', Server: 'prime', Status: 'open', Connections: [{Type: 'xxr', ConID: '1222'}]},
{Id: '1214', Server: 'prime', Status: 'open', Connections: [{Type: 'xxh', ConID: '1111'}, {Type: 'xxh', ConID: '1112'}]},
{Id: '1233', Server: 'tif', Status: 'closed', Connections: [{Type: 'xml', ConID: '1212'}, {Type: 'xxr', ConID: '1233'}, {Type: 'xxh', ConID: '1111'}]}]
Прямо сейчас вот как я перемещаю нужные мне данные в новый массив:
let newArray = [];
data.forEach(server => {
let temp = server.Connections;
temp.forEach(obj => {
let newObj = {
ServerID: server.ID,
Server: server.Server,
Status: server.Status,
ConnectionID: obj.ConID
}
newArray.push(newObj);
})
})
Я действительно хотел бы использовать карту в этой ситуации, если это возможно, вместо нажатия на newArray
через forEach, но я действительно не уверен, как я могу выполнить sh это, когда мне нужны атрибуты из обоих массивы без вложенного l oop. Если у кого-нибудь есть предложения о том, как я могу это сделать, это было бы здорово. Может быть, это невозможно, и для этой ситуации это просто вложенный l oop, но я чувствую, что есть способ отделить его. Заранее спасибо!