Elemendi muutmine id järgi JavaScriptis
Olgu muutujas arr
massiiv objekte:
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',
},
];
Oletame, et tahame muuta mõnda elementi massiivist. Olgu uued andmed salvestatud muutujasse, näiteks sellised:
let data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
Toodud objektis id kattub
massiivi teise elemendi id-ga, kuid omaduste
väärtused on teised. Teisisõnu,
data-s omaduses id on meil salvestatud
selle massiivi elemendi id, mida
me tahame muuta.
Teeme selle muutuse. Selleks
loeme massiivi elemendid tsükliga läbi
ja kui id kattub otsitavaga, teostame
elemendi asendamise, aga kui ei kattu, jätame
elemendi muutmata:
let res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Koodi saab lühendada, kasutades ternaaroperaatorit:
let res = arr.map(elem => elem.id === data.id ? data : elem);
Olgu muutujas salvestatud massiivi elemendi
id. Tehke nupp, mille vajutamisel
muudetakse vastavat
massiivi elementi.