Introducción
En este laboratorio, exploraremos la función indexBy en JavaScript, que crea un objeto a partir de una matriz basado en una función proporcionada. El propósito de este laboratorio es ayudarte a entender cómo usar Array.prototype.reduce() y cómo aplicar una función a cada valor de una matriz para producir un par clave-valor. Al final de este laboratorio, serás capaz de usar indexBy para mapear los valores de una matriz a claves y crear un nuevo objeto.
Función para indexar una matriz
Para indexar una matriz usando una función, sigue estos pasos:
- Abre la Terminal/SSH y escribe
nodepara comenzar a practicar la codificación. - Utiliza
Array.prototype.reduce()para crear un objeto a partir de la matriz. - Aplica la función proporcionada a cada valor de la matriz para producir una clave y agrega el par clave-valor al objeto.
Aquí hay un fragmento de código de ejemplo:
const indexBy = (arr, fn) =>
arr.reduce((obj, v, i) => {
obj[fn(v, i, arr)] = v;
return obj;
}, {});
Puedes usar esta función de la siguiente manera:
indexBy(
[
{ id: 10, name: "apple" },
{ id: 20, name: "orange" }
],
(x) => x.id
);
// { '10': { id: 10, name: 'apple' }, '20': { id: 20, name: 'orange' } }
Esta función crea un objeto a partir de una matriz mapeando cada valor a una clave usando una función proporcionada. El objeto resultante contiene pares clave-valor donde las claves son producidas por la función y los valores son los elementos originales de la matriz.
Resumen
¡Felicidades! Has completado el laboratorio de Indexar Matriz Basada en Función. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.