Я думаю, вам нужно подумать, хотите ли вы изменить или нет.
Подход 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)
Обратите внимание, что данные (входные данные для функции) не изменились, и мы получили вывод, который мы получили после.