#javascript #arrays #object
#javascript #массивы #объект
Вопрос:
У меня есть массив объектов, и я хочу скопировать этот массив объектов в другой массив, изменяя некоторые элементы, например, копируя id
только в порядке возрастания и копируя только значение трофеев баскетбола в трофеи. Как это сделать?
const item = [{
"id": 33,
"name": "John"
"trophies": {
"basketball" : 2,
"baseball" : 5
},
"profile": "profile/212"
}
{
"id": 12,
"name": "Michael"
"trophies": {
"basketball" : 6,
"baseball" : 7
},
"profile": "profile/341"
}
]
Я хочу, чтобы приведенный выше массив объектов после копирования выглядел примерно так
const item2 = [{
"id": 12,
"name": "Michael"
"trophies": 6,
"profile": "http://collegeprofile.com/profile/341"
},
{
"id": 33,
"name": "John"
"trophies": 2,
"profile": "http://collegeprofile.com/profile/212"
}
]
Ответ №1:
- Вы можете сортировать по идентификатору в порядке возрастания, используя
Array.prototype.sort
- И сопоставление
basketball
значения сtrophies
использованиемArray.prototype.map
.
const item = [{
"id": 33,
"name": "John",
"trophies": {
"basketball": 2,
"baseball": 5
},
"profile": "profile/212"
}, {
"id": 12,
"name": "Michael",
"trophies": {
"basketball": 6,
"baseball": 7
},
"profile": "profile/341"
}];
const output = item.sort((a, b) => (a.id - b.id)).map((item) => ({
...item,
trophies: item.trophies.basketball,
profile: "http://collegeprofile.com/" item.profile
}));
console.log(output);
Комментарии:
1. Я бы предложил
(a.id - b.id)
вместо(a.id > b.id)
.2. @Дерек. W Спасибо за ваш ответ. также, как мне изменить этот профиль на ссылку профиля?