Добавить инкрементные ключи к массиву объекта - PullRequest
0 голосов
/ 11 октября 2018

Мне нужна ваша помощь;

Предположим, у меня есть массив таких объектов

{
    'Name:'ABC',
    'Code': 'BP'
}

Какой лучший способ добавить инкрементный атрибут к этому массиву в машинописи.

[{'Name':'ABC','Code':'BP','ID':0}, [{'Name':'ABD','Code':'DP','ID':1},…]

Спасибо

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Я думаю, вам нужно подумать, хотите ли вы изменить или нет.

Подход forEach приведет к изменению входа, что не всегда рекомендуется.

Примите во внимание следующее:

var data = [{Name:'ABC',Code: 'BP'}]
const mutate = data.map((x, i) => (x.ID = i, x))
console.log(data)

Подобный подход к forEach, в котором, как вы можете видеть, данные получили mutated.

Теперь рассмотрим подход pure вот так:

var data = [{Name:'ABC', Code: 'BP'}]
const pure = data.map((x, i) => ({...x, ID:i}))
console.log(data, pure)

Обратите внимание, что данные (входные данные для функции) не изменились, и мы получили вывод, который мы получили после.

0 голосов
/ 11 октября 2018

Пожалуйста, попробуйте это:

arrayOfObjects.forEach((obj, index) => obj.ID = index)
...