Тағйир додани як хосият бо 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 табдил диҳед.