Introducción
En este laboratorio, exploraremos la programación en JavaScript y aprenderemos cómo utilizar juntos los métodos Array.prototype.reduce(), Array.prototype.filter() y Array.prototype.map() para crear una función que filtre una matriz de objetos basada en una condición y también filtre las claves no especificadas. Este laboratorio ayudará a mejorar nuestra comprensión de la programación funcional en JavaScript y cómo manipular matrices de objetos de manera concisa y eficiente.
Filtrado de objetos por condición y claves
Para filtrar una matriz de objetos basada en una condición, mientras también se filtran las claves no especificadas, use la función reducedFilter().
A continuación, se presentan los pasos a seguir:
Utilice
Array.prototype.filter()para filtrar la matriz según el predicadofnde modo que devuelva los objetos para los cuales la condición devolvió un valor verdadero.Utilice
Array.prototype.map()en la matriz filtrada para devolver el nuevo objeto.Utilice
Array.prototype.reduce()para filtrar las claves que no se suministraron como argumentokeys.
const reducedFilter = (data, keys, fn) =>
data.filter(fn).map((el) =>
keys.reduce((acc, key) => {
acc[key] = el[key];
return acc;
}, {})
);
A continuación, se muestra un ejemplo de uso de la función reducedFilter():
const data = [
{
id: 1,
name: "john",
age: 24
},
{
id: 2,
name: "mike",
age: 50
}
];
reducedFilter(data, ["id", "name"], (item) => item.age > 24);
// Output: [{ id: 2, name:'mike'}]
Para comenzar a practicar la codificación, abra la Terminal/SSH y escriba node.
Resumen
¡Felicidades! Has completado el laboratorio de Filtrado de Coincidencias y Valores No Especificados. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.