JS: Как изменить значение свойства объекта в соответствии с этим атрибутом объекта

У меня есть такие данные 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}
]

Каков самый простой способ отфильтровать / сопоставить мои данные для такого изменения?

resultData.find(o => o.id === 788539).name = "bruno"
Felix Kling 03.10.2018 20:13

Вы упомянули "фильтр / карту", и так получилось, что массивы JS имеют два удобных метода с этими именами;)

Robin Zigmond 03.10.2018 20:17
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
62
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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, это будет перебирать весь массив, даже если объект был найден. Если идентификатор не уникален, это необходимо, но если он уникален, и это тратит время, если список большой.

Felix Kling 05.10.2018 01:10
Ответ принят как подходящий

Для некоторых альтернатив, упомянутых Феликс Клинг, может потребоваться полифил:

// 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
  }
}

Другие вопросы по теме