Cambiar una propiedad por id en JavaScript
Puede que necesites cambiar no todo el objeto, sino una propiedad concreta. Veamos cómo se hace.
Supongamos que en la variable arr hay
un array de objetos:
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',
},
];
Supongamos que en variables se almacenan el id del elemento,
el nombre de la propiedad a cambiar y el nuevo valor
de la propiedad:
let id = 'IWSpfBPSV3SXgRF87uO74';
let prop = 'prop1';
let value = '!!!';
Para resolver el problema es conveniente usar la desestructuración y nombres de propiedades calculados:
let res = arr.map(elem => {
if (elem.id === id) {
return {...elem, [prop]: value};
} else {
return elem;
}
});
Se dan las siguientes variables:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop = 'prop2';
Crea un botón, al pulsar el cual se
tomará el elemento del array con el id especificado,
en él se tomará la propiedad con el nombre especificado
y al final del valor de esta propiedad
se añadirá el signo '!'.
Supongamos que se dan dos variables con nombres de propiedades:
let id = 'JAmjRlfQT8rLTm5tG2m1L';
let prop1 = 'prop2';
let prop2 = 'prop3';
Modifica la tarea anterior para que al hacer clic los cambios se realicen inmediatamente para las dos propiedades indicadas.
Rehace la solución presentada en la teoría
usando la copia de objetos con Object.assign.