Introducción
En este laboratorio, trabajaremos en un ejercicio de programación en JavaScript que implica reemplazar o agregar valores en un array basado en una función de comparación. A través de este ejercicio, aprenderás a usar el operador de propagación, Array.prototype.findIndex(), Array.prototype.push() y Array.prototype.splice() para manipular arrays en JavaScript. Este laboratorio te ayudará a mejorar tus habilidades en el trabajo con arrays y funciones en JavaScript.
Cómo reemplazar o agregar un valor en un array
Para reemplazar un elemento en un array o agregarlo si no existe, sigue estos pasos:
- Utiliza el operador de propagación (
...) para crear una copia superficial del array. - Utiliza
Array.prototype.findIndex()para encontrar el índice del primer elemento que cumpla con la función de comparacióncompFnproporcionada. - Si no se encuentra ningún elemento, utiliza
Array.prototype.push()para agregar el nuevo valor al array. - En caso contrario, utiliza
Array.prototype.splice()para reemplazar el valor en el índice encontrado con el nuevo valor.
A continuación, se muestra un ejemplo de cómo implementar esta funcionalidad:
const replaceOrAppend = (arr, val, compFn) => {
const res = [...arr];
const i = arr.findIndex((v) => compFn(v, val));
if (i === -1) res.push(val);
else res.splice(i, 1, val);
return res;
};
Puedes utilizar esta función con un array de objetos de la siguiente manera:
const people = [
{ name: "John", age: 30 },
{ name: "Jane", age: 28 }
];
const jane = { name: "Jane", age: 29 };
const jack = { name: "Jack", age: 28 };
replaceOrAppend(people, jane, (a, b) => a.name === b.name);
// [ { name: 'John', age: 30 }, { name: 'Jane', age: 29 } ]
replaceOrAppend(people, jack, (a, b) => a.name === b.name);
// [
// { name: 'John', age: 30 },
// { name: 'Jane', age: 28 },
// { name: 'Jack', age: 28 }
// ]
Resumen
¡Felicitaciones! Has completado el laboratorio de Reemplazar o Agregar Valor en un Array. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.