Как использовать ранее построенный массив для создания нового объекта - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время у меня есть массив объектов со свойствами, такими как

{
id: 1,
rollName: Tuna,
price: 6,
category: sushi,
quantity: 1 // whatever the quantity is that the person selects
}

, каждый объект динамически создается по выбору пользователя и сразу помещается в массив, в который эти объекты вложены.
What I 'У меня возникли проблемы с, я теперь хочу сделать новый массив объектов, который в основном использует вышеупомянутый массив проходит через него, и создает новые объекты со свойствами, такими как

{
rollName: Tuna,
quantity: 1, //whatever the quantity is that the person selects
tableNumber: 1 // preset by page
}

В настоящее время у меня есть функция, котораяis

function buildOrder(){
        let chefObject = {};
        for (let i = 0; i < tableOneOrder.length; i++) {
        chefObject[i] = {
            rollName : tableOneOrder[i].rollName,
            quantity : tableOneOrder[i].quantity,
            tableNum : tableNum
        };
        }   
    }

Мне бы хотелось, чтобы мой окончательный массив был чем-то вроде

[{
rollName: Tuna,
quantity: 3,
tableNumber:1
},{
rollName: Freshwater Eel,
quantity: 2,
tableNumber: 1
},{
rollName: Rainbow Roll,
quantity: 1,
tableNumber: 1
}]

1 Ответ

0 голосов
/ 29 ноября 2018

Вы можете использовать map() для перебора массива и создания нового массива из его элементов.Вы также можете использовать деструктуризацию объектов, чтобы извлечь нужные поля, что немного облегчает чтение кода:

let arr = [
  {
    id: 1,
    rollName: 'Tuna',
    price: 6,
    category: 'sushi',
    quantity: 1 // whatever the quantity is that the person selects
  },
  {
    id: 2,
    rollName: 'Hamachi',
    price: 7,
    category: 'sushi',
    quantity: 2 // whatever the quantity is that the person selects
  }
]
    
let tableName = 1
let newObj = arr.map(({rollName, quantity}) => ({tableName, quantity, rollName}))

console.log(newObj)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...