JavaScript да элементни id буйича ўзгартириш

Ўзгартувчида 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',
  },
];

Фараз қилайлик, биз массивнинг қандайдир бир элементини ўзгартирмоқчимиз. Янги маълумотлар ўзгартувчида сақлансин, масалан, мана булар:

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

Келтирилган объектда id массивнинг иккинчи элементанинг idсига мос келади, хоссаларнинг қийматлари esa бошқача. Бошқа сўзлар билан айтганда, data да id хоссасида биз ўзгартирмоқчи бўлган массив элементининг idси сақланган.

Келинг, бу ўзгаришни амалга оширайлик. Бунинг учун массив элементларини цикл билан қайталаймиз ва агар id изланаётган idга мос келса, элементни алмаштирамиз, агар мос келмаса, элементни ўзгартирмай қолдирамиз:

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

Кодни қисқартириш мумкин, тернар операторидан фойдаланиб:

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

Фараз қилайлик, ўзгартувчида массив элементининг idси сақланган. Тугма ясаинг, уни босганда мос келувчи массив элементи ўзгартирилсин.