Endring av en egenskap etter id i JavaScript
Det kan hende du trenger å endre ikke hele objektet, men en spesifikk egenskap. La oss se hvordan dette gjøres.
La variabelen arr inneholde
en array med objekter:
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',
},
];
La variablene inneholde id til elementet,
egenskapsnavnet for endring og den nye verdien
for egenskapen:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
For å løse oppgaven er det praktisk å bruke destructuring og beregnede egenskapsnavn:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Følgende variabler er gitt:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Lag en knapp som, når den klikkes på, vil
ta elementet i arrayen med den angitte id,
i den vil den ta egenskapen med det angitte
navnet og til slutten av verdien for denne egenskapen
vil tegnet '!' bli lagt til.
La to variabler med egenskapsnavn være gitt:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Modifiser den forrige oppgaven slik at ved klikk utføres endringene umiddelbart for to angitte egenskaper.
Omgjør løsningen gitt i teorien
ved å kopiere objektet med Object.assign.