Cómo obtener valores distintos de un arreglo de objetos en JavaScript

Cómo obtener valores distintos de un arreglo de objetos en JavaScript

En ciertas ocasiones, al trabajar con objetos en JavaScript se puede presentar la necesidad de obtener únicamente los valores distintos de un determinado conjunto de datos. En el caso de un arreglo de objetos, esto puede resultar un poco más complejo que simplemente aplicar el método filter() o indexOf() que se utilizan con arreglos unidimensionales. En este artículo se presentan distintas formas de obtener valores únicos de arreglos de objetos.

📋 Aquí podrás encontrar✍
  1. Filtrando objetos en base a una propiedad
  2. Utilizando el método reduce()
  3. Conclusión
  4. Preguntas frecuentes
    1. ¿Qué es un ciclo for en JavaScript?
    2. ¿Para qué sirve el método reduce()?
    3. ¿Cómo se pueden agregar valores a un arreglo en JavaScript?

Filtrando objetos en base a una propiedad

Una forma sencilla de obtener valores únicos es a través de un ciclo for. El primer paso es crear un arreglo vacío que almacenará los valores únicos obtenidos. Posteriormente se recorre el arreglo original con un ciclo for y se verifica si la propiedad que se desea evaluar no ha sido agregada previamente al arreglo de valores únicos. En caso de que no haya sido agregada, se inserta en el nuevo arreglo.

```javascript
let originalArray = [{nombre: "Juan", edad: 20}, {nombre: "Ana", edad: 25}, {nombre: "Pedro", edad: 22}, {nombre: "Juan", edad: 24}];
let newArray = [];

for(let i = 0; i < originalArray.length; i++){ if(newArray.indexOf(originalArray[i].nombre) === -1){ newArray.push(originalArray[i].nombre) } } console.log(newArray) // Imprime: ["Juan", "Ana", "Pedro"] ``` En este caso, se evalúa la propiedad `nombre` de cada objeto en `originalArray`. El resultado es un nuevo arreglo sin duplicados.

Utilizando el método reduce()

Una forma más práctica para obtener valores únicos de un arreglo de objetos es utilizando el método reduce(). Este método se encarga de recorrer el arreglo, y a medida que lo hace, va acumulando los valores que cumplen con ciertas condiciones. Para nuestro caso, la función de reducción se encargará de crear un nuevo objeto con las propiedades que se desean evaluar como llave y valor.

```javascript
let originalArray = [{nombre: "Juan", edad: 20}, {nombre: "Ana", edad: 25}, {nombre: "Pedro", edad: 22}, {nombre: "Juan", edad: 24}];

let uniqueArray = originalArray.reduce((obj, currentValue) => {
obj[currentValue.nombre] = currentValue
return obj
}, {})

console.log(Object.values(uniqueArray)) // Imprime: [{nombre: "Juan", edad: 20}, {nombre: "Ana", edad: 25}, {nombre: "Pedro", edad: 22}]
```

En este caso, se utiliza `reduce()` para crear un objeto que tiene como llave la propiedad `nombre` de cada objeto del arreglo `originalArray`. Como valor, se almacena el objeto completo. Esto evita la necesidad de recorrer el arreglo en busca de valores únicos.

Conclusión

Los arreglos de objetos en JavaScript pueden presentar ciertas complejidades a la hora de obtener valores únicos. En este artículo se presentaron dos formas de lograrlo utilizando métodos nativos de JavaScript. La elección de la opción adecuada dependerá de las necesidades específicas del proyecto.

Preguntas frecuentes

¿Qué es un ciclo for en JavaScript?

Un ciclo for es una estructura de control de flujo en JavaScript que permite ejecutar una serie de instrucciones un número determinado de veces.

¿Para qué sirve el método reduce()?

El método reduce() se utiliza para ejecutar una función de reducción sobre cada elemento de un arreglo, y acumular el resultado en una única salida.

¿Cómo se pueden agregar valores a un arreglo en JavaScript?

Se puede utilizar el método push() para agregar valores al final del arreglo, o el método unshift() para agregar valores al inicio del mismo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir