Elemendi muutmine id järgi JavaScriptis

Olgu muutujas arr massiiv objekte:

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',
  },
];

Oletame, et tahame muuta mõnda elementi massiivist. Olgu uued andmed salvestatud muutujasse, näiteks sellised:

javascriptlet data = {
  id: 'IWSpfBPSV3SXgRF87uO74',
  prop1: 'value21 !',
  prop2: 'value22 !',
  prop3: 'value23 !',
};

Toodud objektis id kattub massiivi teise elemendi id-ga, kuid omaduste väärtused on teised. Teisisõnu, data-s omaduses id on meil salvestatud selle massiivi elemendi id, mida me tahame muuta.

Teeme selle muutuse. Selleks loeme massiivi elemendid tsükliga läbi ja kui id kattub otsitavaga, teostame elemendi asendamise, aga kui ei kattu, jätame elemendi muutmata:

javascriptlet res = arr.map(elem => {
  if (elem.id === data.id) {
    return data;
  } else {
    return elem;
  }
});

Koodi saab lühendada, kasutades ternaaroperaatorit:

javascriptlet res = arr.map(elem => elem.id === data.id ? data : elem);
Задание 1

Olgu muutujas salvestatud massiivi elemendi id. Tehke nupp, mille vajutamisel muudetakse vastavat massiivi elementi.