JavaScript-de id boýunça element üýtgetmek
arr üýtgeýjisinde nusgalar massiwiniň
ýatandygyny göz öňünde tutalyň:
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',
},
];
Massiwiň bir elementini üýtgetmek isleýändigimizi göz öňünde tutalyň. Täze maglumatlar, meselem, şuňa meňzeş bir üýtgeýjide saklansyn:
let data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
Görkezilen nusgada id massiwiň ikinji
elementiniň id bilen gabat gelýär,
ýöne aýratynlyklaryň bahalary başgadır. Başga
sözler bilen aýdylanda, data nusgasynyň
id aýratynlygynda biz üýtgetmek isleýän
massiw elementiniň id saklanýar.
Geliň bu üýtgeşligi ýerine ýetireliň. Bunuň üçin
massiw elementlerini aýlaw bilen gözden geçireris
we eger id gözlenileni bilen gabat gelýän
bolsa, elementi çalşyrarys, ýöne gabat gelmeýän
bolsa, elementi üýtgeşiksiz goýarys:
let res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Kody üçlük operatoryndan peýdalanyp gysgaldyp bolýar:
let res = arr.map(elem => elem.id === data.id ? data : elem);
Üýtgeýjide massiw elementiniň id
saklanandygyny göz öňünde tutuň. Degme
basylşynda degişli massiw elementi
üýtgedilýän düwmäni düzüň.