Consulta:
Javascript. Función. Dado un array. Cada elemento trim.
Eliminar repetidos.
Mix o Shuffle con 4 técnicas diferentes. Devolver array resultante
Respuesta:¡Hola! Para resolver tu consulta, podemos seguir los siguientes pasos:
1. Dado un array de elementos, utilizaremos la función `map` en JavaScript para aplicar el método `trim` a cada elemento del array y eliminar los espacios en blanco al principio y al final de cada elemento. Esto se puede hacer de la siguiente manera:
```javascript
const arraySinEspacios = miArray.map(elemento => elemento.trim());
```
2. Para eliminar los elementos repetidos del nuevo array obtenido, podemos utilizar el operador de propagación (`...`) y el objeto `Set` en JavaScript. El objeto Set nos permite almacenar valores únicos y podemos convertirlo nuevamente en un array utilizando el operador de propagación. Aquí tienes un ejemplo:
```javascript
const arraySinRepetidos = [...new Set(arraySinEspacios)];
```
3. Para mezclar o shuffle el nuevo array sin repetidos, puedes utilizar alguna de las siguientes técnicas:
- Técnica 1: Utilizar el método `sort` junto con la función `Math.random` para ordenar aleatoriamente los elementos del array. Aquí tienes un ejemplo:
```javascript
const arrayMezclado1 = arraySinRepetidos.sort(() => Math.random() - 0.5);
```
- Técnica 2: Utilizar una función auxiliar que intercambie aleatoriamente los elementos del array varias veces. Aquí tienes un ejemplo:
```javascript
function mezclarArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
const arrayMezclado2 = mezclarArray(arraySinRepetidos);
```
- Técnica 3: Utilizar el algoritmo de Fisher-Yates para mezclar el array. Aquí tienes un ejemplo:
```javascript
function mezclarArrayFisherYates(array) {
let currentIndex = array.length;
let temporaryValue, randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
const arrayMezclado3 = mezclarArrayFisherYates(arraySinRepetidos);
```
- Técnica 4: Utilizar la librería `lodash` y su función `shuffle` para mezclar el array. Asegúrate de importar la librería antes de utilizarla. Aquí tienes un ejemplo:
```javascript
import shuffle from 'lodash/shuffle';
const arrayMezclado4 = shuffle(arraySinRepetidos);
```
Estas son cuatro técnicas diferentes que puedes utilizar para mezclar el array resultante. Puedes elegir la que mejor se adapte a tus necesidades.
Espero que esta información te sea útil. Si tienes alguna otra pregunta, no dudes en hacerla. Estoy aquí para ayudarte.