En este ejemplo podrás entender los conceptos sobre la creación de un diccionario totalmente en JavaScript con lo cual tocaremos temas como arrays
En este ejemplo veremos cómo crear un diccionario de clave- valor en JavaScript.
Por lo cual haremos una prueba de una búsqueda de usuario en concreto por su id, usaremos el algoritmo simplón de búsqueda que implementaremos ahora:
const users = [{
id: '3212-2232-3423-3425',
name: 'Jose Dongil'
}, {
id: '4567-3456-3456-7667',
name: 'Ana María Borlaz'
}];
function getUserById(users, userId) {
for (let index = 0; index <= users.length; index++) {
if (users[index].id === userId) {
return users[index];
}
}
}
getUserById(users, '3212-2232-3423-3425');
// { id: '3212-2232-3423-3425', name: 'Jose Dongil' }
Pero al hacer este tipo de búsqueda seria ineficiente al trabarse de una gran cantidad de datos, por eso se puede mejorar el tipo de búsqueda con algunas funciones que tienen un algoritmo de búsqueda más eficiente que los clásicos bucles.
const users = [{
id: '3212-2232-3423-3425',
name: 'Jose Dongil'
}, {
id: '4567-3456-3456-7667',
name: 'Ana María Borlaz'
}];
function getUserById(users, userId) {
return users.find(user => user.id === userId);
}
getUserById(users, '3212-2232-3423-3425');
// { id: '3212-2232-3423-3425', name: 'Jose Dongil' }
Ahora para mejorar aún más el código podemos transformar nuestro array en un objeto con el método reduce con el siguiente código:
function convertArrayToObject(array) {
return array.reduce(function (obj, item) {
obj[item.id] = item;
return obj;
}, {});
}
const dUsers = convertArrayToObject(users);
Con esto conseguimos un objeto con ‘keys’ que serían los id de los usuarios. De esta forma, la búsqueda se convierte en algo automático y sencillo:
dUsers['3212-2232-3423-3425'];
Para guardan un nuevo usuario seria relativamente sencillo:
if (dUsers) {
dUsers[newUser.id] = newUser;
}
Con esto tendremos un sistema de busqueda usando algunas funciones, ademas otra forma pasando todo a objetos lo cual nos brindara una mejor eficiencia.
Leido 20317 veces
© Todos los derechos reservados Codea App | ...de frente al código!!! | 2020 - 2023