Тағйир додани як хосият бо id дар JavaScript
Шумо метавонед ба тағйир додани тамоми объект эҳтиёҷ надошта, балки як хосияти мушаххас. Биёед бубинем, ки ин чӣ гуна анҷом дода мешавад.
Фарз кунем, ки дар тағйирёбандаи arr
массиви объектҳо ҷойгир аст:
let 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-и унсури мавҷуда,
номи хосияти барои тағйир додан ва қимати нави
хосият нигоҳ дошта мешавад:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Барои ҳалли масъала, истифода аз деструктуризатсия ва номҳои хосиятҳои ҳисобкардашуда мувофиқ аст:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Тағйирёбандаҳои зерин дода шудаанд:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Тугмае созед, ки пахш кардани он
унсури массивиро бо id-и нишондода гирад,
дар он хосиятеро бо номи нишондода гирад
ва ба охири қимати ин хосият
аломати '!' илова кунад.
Фарз кунем, ки ду тағйирёбанда бо номҳои хосиятҳо дода шудаанд:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Масъалаи қаблиро тавре таҳрир кунед, ки дар як зарба ду хосияти нишондодашуда тағйир ёбанд.
Ҳалли овардашуда дар назарияро
тавассути нусхабардории объект бо истифода аз Object.assign табдил диҳед.