Elemendi muutmine id järgi JavaScriptis
Olgu muutujas arr
massiiv objekte:
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',
},
];
Oletame, et tahame muuta mõnda elementi massiivist. Olgu uued andmed salvestatud muutujasse, näiteks sellised:
javascriptlet 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:
javascriptlet res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Koodi saab lühendada, kasutades ternaaroperaatorit:
javascriptlet res = arr.map(elem => elem.id === data.id ? data : elem);
Задание 1
Olgu muutujas salvestatud massiivi elemendi
id. Tehke nupp, mille vajutamisel
muudetakse vastavat
massiivi elementi.