Как пересобрать массив в новым с новыми ключами?

Реалинация ситуация, имеется массив продуктов( 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);

→ Ссылка