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

Өзгөрмөлөрдө элементтин 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 аркылуу объектти көчүрүү менен кайра иштеп чыгыңыз.