У меня есть такие данные JSON:
inputData = [
{ id : 179849, name : alex , lastname: sanchez},
{ id : 788539, name : Paul, lastname: bearer},
{ id : 282169, name : Jean, lastname: nobel},
...
{ id : 632785, name : Maria, lastname: parak}
]
мне нужно найти какой-то объект в соответствии с его значением я бы(например: 788539)
и измените значение его атрибута имя -> имя становится: bruno
данные станут:
resultData= [
{ id : 179849, name : alex , lastname: sanchez},
{ id : 788539, name : bruno, lastname: bearer}, /* THIS ONE*/
{ id : 282169, name : Jean, lastname: nobel},
...
{ id : 632785, name : Maria, lastname: parak}
]
Каков самый простой способ отфильтровать / сопоставить мои данные для такого изменения?
Возможный дубликат Найти и заменить значение внутри массива объектов javascript
Вы упомянули "фильтр / карту", и так получилось, что массивы JS имеют два удобных метода с этими именами;)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


resultData= [
{ id : 179849, name : alex , lastname: sanchez},
{ id : 788539, name : bruno, lastname: bearer}, /* THIS ONE*/
{ id : 282169, name : Jean, lastname: nobel},
...
{ id : 632785, name : Maria, lastname: parak}
];
id = 788539;
resultData.forEach(ele=>{
if (ele.id == id){
ele.name = 'bruno'
}
});
console.info(resultData);
FWIW, это будет перебирать весь массив, даже если объект был найден. Если идентификатор не уникален, это необходимо, но если он уникален, и это тратит время, если список большой.
Для некоторых альтернатив, упомянутых Феликс Клинг, может потребоваться полифил:
// Mentioned by Felix Kling
inputData.find(x => x.id === 788539)
.name = 'Bruno'
Вы также можете использовать для:
for (let item of inputData) {
if (item.id === 788539) {
item.name = 'Bruno'
break
}
}
resultData.find(o => o.id === 788539).name = "bruno"