JavaScript-de bir elementiň id-si boýunça bir aýratynlygy üýtgetmek
Bir nusganyň doly däl-de, diňe belli bir aýratynlygyny üýtgetmek zerur bolup biler. Bu nädip edilýändigine göz aýlalyň.
Deňişjide arr sanaw nusgalary ýatda saklanylýar:
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',
},
];
Deňişjilerde element üçin id, üýtgediljek aýratynlygyň ady we aýratynlygyň täze bahasy saklanylýar:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Meseläni çözmek üçin hasaplanylýan aýratynlyk adlary we destrüktirleme ulanmak amatlydyr:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Aşakdaky deňişjiler berlen:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Bir düwmäni ýasaň, onuň basylmagy bilen berlen id-e eýe bolan sanaw elementiniň aýratynlygy alynmaly we şol aýratynlygyň bahasynyň soňuna '!' belgisi goşulmaly.
Aýratynlyk adlary bilen iki deňişji berlen:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Öňki meseläni üýtgediň we bir gezek basylanyňda iki görkezilen aýratynlyk üýtgedilmeli.
Teoriýada görkezilen çözümi Object.assign ulanyp nusgany göçürip almak ýoly bilen üýtgediň.