Ændring af en enkelt egenskab efter id i JavaScript
Du kan have behov for at ændre ikke hele objektet, men en bestemt egenskab. Lad os se, hvordan det gøres.
Lad variablen arr indeholde
et array af 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',
},
];
Lad variablerne indeholde elementets id,
navnet på egenskaben der skal ændres og den nye værdi
for egenskaben:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Til at løse opgaven er det praktisk at bruge destructuring og beregnede egenskabsnavne:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Følgende variable er givet:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Lav en knap, hvor der ved klik vil
blive taget elementet fra arrayet med det angivne id,
i det vil der blive taget egenskaben med det angivne
navn og til slutningen af værdien for denne egenskab
vil der blive tilføjet tegnet '!'.
Lad der være givet to variable med egenskabsnavne:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Modificer den forrige opgave, så ændringerne ved klik udføres med det samme for to angivne egenskaber.
Omlav den anførte løsning fra teorien
via kopiering af objektet med Object.assign.