# Изменение одного свойства по id в JavaScript

Вам может потребоваться изменять не весь объект, а конкретное свойство. Давайте посмотрим, как это делается.

Пусть в переменной `arr` лежит массив объектов:

`let arr = [ { id: 'GYi9GauC4gBF1e2SixDvu', prop1: 'value11', prop2: 'value12', prop3: 'value13', }, { id: 'IWSpfBPSV3SXgRF87uO74', prop1: 'value21', prop2: 'value22', prop3: 'value23', }, { id: 'JAmjRlfQT8rLTm5tG2m1L', prop1: 'value31', prop2: 'value32', prop3: 'value33', }, ];`

Пусть в переменных хранятся `id` элемента, имя свойства для изменения и новое значение свойства:

`let id = 'IWSpfBPSV3SXgRF87uO74'; let prop = 'prop1'; let value = '!!!';`

Для решения задачи удобно использовать деструктуризацию и вычисляемые имена свойств:

`let res = arr.map(elem => { if (elem.id === id) { return {...elem, [prop]: value}; } else { return elem; } });`

Даны следующие переменные:

`let id = 'JAmjRlfQT8rLTm5tG2m1L'; let prop = 'prop2';`

Сделайте кнопку, по нажатию на которую будет браться элемент массива с указанным `id`, в нем будет браться свойство с указанным именем и в конец значения этого свойства будет дописываться знак `'!'`.

Пусть даны две переменные с именами свойств:

`let id = 'JAmjRlfQT8rLTm5tG2m1L'; let prop1 = 'prop2'; let prop2 = 'prop3';`

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

Переделайте приведенное в теории решение через копирование объекта с помощью `Object.assign`.

← →
↑