Я пытаюсь условно добавить свойство к объекту в массиве, используя .map(), но, похоже, что-то не хватает. Мой массив объектов остается неизменным после завершения карты. Все это является результатом попытки разрешить ошибку ESLint «no-param-reassign», если это помогает понять, почему я это делаю.Добавление нового свойства в объект, который существует в массиве, используя .map()
Я сделал рудиментарный пример того, что я пытаюсь сделать здесь: jsfiddle.
var aList = [{
Title: "Enders Game",
Rating: 8
},
{
Title: "Harry Potter",
Rating: 10
}];
console.log('before', aList);
aList.map(function(book) {
if(book.Title == "Enders Game"){
console.log({ ...book, completed: true })
return { ...book, completed: true };
}
console.log({ ...book, completed: false })
return { ...book, completed: false };
});
console.log('after', aList);
'.map()' не мутировать оригинал. Он создает новый массив, который возвращается, поэтому 'var newMap = aList.map (...' –