Змяненне аднаго ўласцівасці па id у JavaScript

Вам можа спатрэбіцца змяняць не ўвесь аб'ект, а канкрэтную ўласцівасць. Давайце паглядзім, як гэта робіцца.

Хай у зменнай arr ляжыць масіў аб'ектаў:

javascriptlet 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 элемента, імя ўласцівасці для змянення і новае значэнне ўласцівасці:

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

Для вырашэння задачы зручна выкарыстоўваць дэструктурызацыю і вылічальныя імёны ўласцівасцей:

javascriptlet res = arr.map(elem => {
  if (elem.id === id) {
    return {...elem, [prop]: value};
  } else {
    return elem;
  }
});
Задание 1

Даныя наступныя зменныя:

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

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

Задание 2

Хай дадзены дзве зменныя з імёнамі ўласцівасцей:

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

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

Задание 3

Перарабіце прыведзенае ў тэорыі рашэнне праз капіраванне аб'екта з дапамогай Object.assign.