Как пересобрать массив в новым с новыми ключами?
Реалинация ситуация, имеется массив продуктов( products) , каждый item имеет такие поля как id, name, price и.т.п. Как мне из массива продуктс собрать новый массив с новыми ключами. Нужня это для того что бы передать как список продуктов сбербанк онлайн, и к примеру где массив имеет ключ [id] надо что бы для сбера было [code]
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
let test = [
{ id: 10, name: 1, price: 11 },
{ id: 20, name: 2, price: 22 },
{ id: 30, name: 3, price: 33 },
];
let newCollection = test.map((item) => {
item['code'] = item.id;
delete item.id;
return item;
});
console.log(newCollection);
let test = [
{ id: 10, name: 1, price: 11 },
{ id: 20, name: 2, price: 22 },
{ id: 30, name: 3, price: 33 },
];
let newCollection = test.map((item) => {
return {
code: item.id,
token: item.name + ' hello!',
smile: item.price > 22
};
});
console.log(newCollection);
Автор решения: Aziz Umarov
→ Ссылка
Можно так поменять id на code, не меняя очерёдность свойств
let test = [
{ id: 10, name: 1, price: 11 },
{ id: 20, name: 2, price: 22 },
{ id: 30, name: 3, price: 33 },
];
let newCollection = test.map(item => {
let {id, ...rest} = item;
return {
code: id,
...rest
};
});
console.log(newCollection);
ну или так сократить, тоже самое
let test = [
{ id: 10, name: 1, price: 11 },
{ id: 20, name: 2, price: 22 },
{ id: 30, name: 3, price: 33 },
];
let newCollection = test.map(({id, ...rest}) => ({code: id,...rest}));
console.log(newCollection);