У меня есть объект, который содержит массив других объектов. Моя цель - переместить объекты из массива pets
в тело объекта person
. Я знаю, что это легко сделать, используя Object.assign
. Я мог бы выполнить итерацию и сделать это вручную, но я ищу удобный способ (ES2020 \ TS) для достижения той же цели, но вместо того, чтобы помещать объекты в ключ numeri c по умолчанию, чтобы поместить объект в ключ на основе свойства name
? Если свойство уже существует, добавить к ключу «_1»?
текущий код:
let person = { name: "jon", pets: [{name: "daenerys ", type: "dragon_red"},
{name: "daenerys ", type: "dragon_black"},
{name: "sandor", type: "hound"},
{name: "bran", type: "raven"}]};
Object.assign(person, person.pets);
0: {name: "daenerys ", type: "dragon_red"}
1: {name: "daenerys ", type: "dragon_black"}
2: {name: "sandor", type: "hound"}
3: {name: "bran", type: "raven"}
name: "jon"
pets: (4) [{…}, {…}, {…}, {…}]
Требуемые результаты:
daenerys : {name: "daenerys ", type: "dragon_red"}
daenerys_1 : {name: "daenerys ", type: "dragon_black"}
sandor: {name: "sandor", type: "hound"}
bran: {name: "bran", type: "raven"}
name: "jon"
pets: (4) [{…}, {…}, {…}, {…}]