У меня есть следующий вложенный объект:
{
"cards": {
"1": {
"x": 247,
"y": 213,
"properties": {
"id": 1,
"name": "a",
"intros": {
"intro_0": {
"id": 1,
"cardId": 1
},
"intro_1": {
"id": 2,
"cardId": 1
},
"intro_3": {
"id": 24,
"cardId": 1
}
},
"exits": {
"exit_0": {
"id": 1,
"cardId": 1
},
"exit_1": {
"id": 22,
"cardId": 1
}
},
"mixins": {
"mixin_0": {
"id": 23,
"cardId": 1
}
}
}
},
"3": {
"x": 762,
"y": 187,
"properties": {
"id": 1,
"name": "x",
"intros": {
"intro_0": {
"id": 1,
"cardId": 1
},
"intro_1": {
"id": 263,
"cardId": 1
}
},
"exits": {
"exit_0": {
"id": 1,
"cardId": 1
},
"exit_1": {
"id": 2,
"cardId": 1
}
},
"mixins": {
"mixin_0": {
"id": 3,
"cardId": 1
}
},
}
},
"4": {
"x": 1200,
"y": 187,
"properties": {
"id": 1,
"name": "j",
"intros": {
"intro_0": {
"id": 1,
"cardId": 1
},
"intro_1": {
"id": 276,
"cardId": 1
}
},
"exits": {
"exit_0": {
"id": 1,
"cardId": 1
},
"exit_1": {
"id": 2,
"cardId": 1
}
},
"mixins": {
"mixin_0": {
"id": 3,
"cardId": 1
}
}
}
}
}
}
Я пытаюсь go через объект извлечь только первое из «intro» и первого из «exit» и изменить исходный объект, так что он содержит их только с остальными данными. Или, что то же самое, я хотел бы удалить все «вступления», кроме первого и все «выходы», кроме первого. Чтобы извлечь нужные значения, я сделал 3 для in ... но когда дело доходит до изменения исходного объекта, я думаю, что я сделал его слишком сложным, и должен быть какой-то более простой способ.
const cards: any = Object.values(data.cards);
for (const indexCard in cards) {
if (cards.hasOwnProperty(indexCard)) {
const card = cards[indexCard];
const cardIntros = card.properties.intros;
for (const introIndex in cardIntros) {
if (cardIntros.hasOwnProperty(introIndex) && introIndex === 'intro_0') {
const firstIntro = cardIntros[introIndex];
const cardsExits = card.properties.exits;
for (const exitIndex in cardsExits) {
if (cardsExits.hasOwnProperty(exitIndex) && exitIndex === 'exit_0') {
const firstExit = cardsExits[exitIndex];
}
}
}
}
}
}
Кто-нибудь видит более простой способ удаления «вступлений» и «выходов», которые я хочу удалить, чтобы создать новый объект, который содержит только нужные «вступления» и «выходы»?
Спасибо заранее!