Izmena elementa po id u JavaScript-u
Neka u promenljivoj arr se nalazi
niz objekata:
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',
},
];
Recimo da želimo da izmenimo neki element niza. Neka novi podaci budu sačuvani u promenljivoj, na primer, ovakvi:
let data = {
id: 'IWSpfBPSV3SXgRF87uO74',
prop1: 'value21 !',
prop2: 'value22 !',
prop3: 'value23 !',
};
U datom objektu id se poklapa
sa id drugog elementa niza, dok su vrednosti
svojstava - drugačije. Drugim rečima,
u data u svojstvu id je sačuvan
id onog elementa niza kojeg
želimo da izmenimo.
Hajde da izvršimo ovu izmenu. Za to
ćemo proći kroz elemente niza petljom
i, ako se id poklapa sa traženim, izvršićemo
zamenu elementa, a ako se ne poklapa, ostavićemo
element nepromenjenim:
let res = arr.map(elem => {
if (elem.id === data.id) {
return data;
} else {
return elem;
}
});
Kod se može skratiti korišćenjem ternarnog operatora:
let res = arr.map(elem => elem.id === data.id ? data : elem);
Neka u promenljivoj bude sačuvan id elementa
niza. Napravite dugme, čijim pritiskom
će biti izmenjen odgovarajući
element niza.