13 trucos útiles para trabajar con matrices en JavaScript que pueden ser útiles

Las matrices son una de las estructuras de datos más populares en JavaScript porque se utilizan para almacenar datos. Además, las matrices brindan muchas oportunidades para trabajar con estos mismos datos. Entendiendo que para aquellos que están al principio de la forma de aprender JavaScript, las matrices son uno de los temas más básicos, en este artículo me gustaría presentarles algunos trucos útiles que quizás no conozcan. Empecemos

1. Cómo dejar solo valores únicos en la matriz


Esta es una pregunta muy popular durante una entrevista para el puesto de desarrollador de Javascript. Aquí hay una solución rápida y fácil a este problema. Primero debe obtener los valores únicos de la matriz, para esto puede usar el new Set() ( aprox. Re .: la estructura de datos Set almacena solo valores únicos ). A continuación, debe convertir la estructura de datos Establecer en una matriz. Quiero presentarles dos maneras de hacer esto: la primera, usando el método from() , la segunda, usando el operador spread ( "…" ).

 const fruits = ['banana', 'apple', 'orange', 'watermelon', 'apple', 'orange', 'grape', 'apple']; //   const uniqueFruits = Array.from(new Set(fruits)); console.log(uniqueFruits); //  ['banana', 'apple', 'orange', 'watermelon', 'grape'] //   const uniqueFruits2 = [...new Set(fruits)]; console.log(uniqueFruits2); //  ['banana', 'apple', 'orange', 'watermelon', 'grape'] 

Fácil, verdad?

2. Cómo reemplazar valores en una matriz


Hay situaciones en las que necesita reemplazar los valores de la matriz con otros valores. Hay un buen método para esto que quizás no haya conocido: el método de splice(start, value to remove, values to add) , donde start es el número de índice del que queremos eliminar los elementos de la matriz, el value to remove es el número de elementos que queremos eliminar, y los values to add son los elementos que queremos insertar en lugar de los eliminados:

 const fruits = ['banana', 'apple', 'orange', 'watermelon', 'apple', 'orange', 'grape', 'apple']; fruits.splice(0, 2, 'potato', 'tomato'); console.log(fruits); //  ["potato", "tomato", "orange", "watermelon", "apple", "orange", "grape", "apple"] 

3. Cómo transformar una matriz sin usar el método map()


Probablemente todos conocen el método de matriz map() , pero hay otra solución que se puede usar para obtener un efecto similar y limpiar el código. Para hacer esto, podemos usar el método from() :

 const friends = [ { name: 'John', age: 22 }, { name: 'Peter', age: 23 }, { name: 'Mark', age: 24 }, { name: 'Maria', age: 22 }, { name: 'Monica', age: 21 }, { name: 'Martha', age: 19 }, ] const friendsNames = Array.from(friends, ({name}) => name); console.log(friendsNames); //  ['John', 'Peter', 'Mark', 'Maria', 'Monica', 'Martha'] 

4. Cómo borrar rápidamente una matriz


Por ejemplo, tenemos una matriz en la que hay muchos elementos. Necesitamos limpiarlo (no importa para qué propósito), mientras que no queremos eliminar elementos uno por uno. Esto es muy simple de hacer con una línea de código. Para borrar la matriz, necesitamos establecer la longitud de la matriz en 0, ¡y eso es todo!

 const fruits = ['banana', 'apple', 'orange', 'watermelon', 'apple', 'orange', 'grape', 'apple']; fruits.length = 0; console.log(fruits); //  [] 

5. Cómo convertir una matriz a un objeto


Esta situación ocurre: tenemos una matriz, pero necesitamos un objeto (nuevamente, no importa para qué propósito) con estos datos, y la forma más rápida de convertir una matriz en un objeto es usar el operador de propagación ( "..." ):

 const fruits = ['banana', 'apple', 'orange', 'watermelon', 'apple', 'orange', 'grape', 'apple']; const fruitsObj = { ...fruits }; console.log(fruitsObj); //  {0: 'banana', 1: 'apple', 2: 'orange', 3: 'watermelon', 4: 'apple', 5: 'orange', 6: 'grape', 7: 'apple'} 

6. Cómo llenar una matriz con los mismos valores


Existen diferentes situaciones en las que queremos crear una matriz y llenarla con algunos valores, o necesitamos una matriz con los mismos valores. El método fill() para tales tareas es una gran solución:

 const newArray = new Array(10).fill('1'); console.log(newArray); //  ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"] 

7. Cómo combinar más de dos matrices


¿Sabes cómo combinar matrices en una sin usar el método concat() ? Hay una manera fácil de combinar cualquier número de matrices en una matriz con una línea de código. Como probablemente ya haya entendido, el operador de propagación ( "..." ) es una herramienta bastante útil cuando se trabaja con matrices, como en este caso:

 const fruits = ['apple', 'banana', 'orange']; const meat = ['poultry', 'beef', 'fish']; const vegetables = ['potato', 'tomato', 'cucumber']; const food = [...fruits, ...meat, ...vegetables]; console.log(food); //  ["apple", "banana", "orange", "poultry", "beef", "fish", "potato", "tomato", "cucumber"] 

8. Cómo encontrar la intersección de dos matrices


Puede enfrentar esta tarea en cualquier entrevista de JavaScript, porque su solución muestra su conocimiento de los métodos de matriz, así como su forma de pensar. Para encontrar los valores comunes de las dos matrices, utilizaremos uno de los métodos discutidos anteriormente en este artículo para asegurarnos de que los valores en la matriz que estamos verificando no estén duplicados. Además, utilizaremos los métodos filter() e includes() . Como resultado, obtenemos una matriz con elementos que están representados en ambas matrices:

 const numOne = [0, 2, 4, 6, 8, 8]; const numTwo = [1, 2, 3, 4, 5, 6]; const duplicatedValues = [...new Set(numOne)].filter(item => numTwo.includes(item)); console.log(duplicatedValues); //  [2, 4, 6] 

9. Cómo eliminar valores falsos de una matriz


Para comenzar, definamos valores falsos. En Javascript, los valores falsos son: false , 0 , "" , null , NaN e undefined . Ahora podemos descubrir cómo eliminar dichos valores de nuestra matriz. Para lograr esto, necesitamos el método filter() :

 const mixedArr = [0, 'blue', '', NaN, 9, true, undefined, 'white', false]; const trueArr = mixedArr.filter(Boolean); console.log(trueArr); //  ["blue", 9, true, "white"] 

10. Cómo obtener un valor de matriz aleatorio


A veces necesitamos seleccionar un valor de matriz aleatorio. Para hacer la solución simple, corta y rápida, podemos obtener un número de índice aleatorio de acuerdo con la longitud de la matriz. Echa un vistazo a este ejemplo:

 const colors = ['blue', 'white', 'green', 'navy', 'pink', 'purple', 'orange', 'yellow', 'black', 'brown']; const randomColor = colors[(Math.floor(Math.random() * (colors.length)))]; console.log(randomColor); //      

11. Cómo expandir la matriz en la dirección opuesta


Cuando necesitamos "voltear" nuestra matriz, no hay necesidad de crearla a través de bucles y funciones complejas, porque hay un método simple de matriz reverse() que hace todo esto por nosotros, y con una línea de código podemos "voltear" nuestra matriz:

 const colors = ['blue', 'white', 'green', 'navy', 'pink', 'purple', 'orange', 'yellow', 'black', 'brown']; const reversedColors = colors.reverse(); console.log(reversedColors); //  ["brown", "black", "yellow", "orange", "purple", "pink", "navy", "green", "white", "blue"] 

12. método lastIndexOf()


JavaScript tiene un interesante lastIndexOf(elem) que le permite encontrar el índice de la última aparición de un elemento elem . Por ejemplo, si nuestra matriz tiene valores duplicados, podemos encontrar la posición de la última aparición en ella. Eche un vistazo al siguiente ejemplo de código:

 const nums = [1, 5, 2, 6, 3, 5, 2, 3, 6, 5, 2, 7]; const lastIndex = nums.lastIndexOf(5); console.log(lastIndex); //  9 

13. Cómo sumar todos los valores en una matriz


Otra pregunta popular durante una entrevista para un puesto de desarrollador de JavaScript. La suma de todos los elementos se puede encontrar en una línea de código, si conoce el método reduce() :

 const nums = [1, 5, 2, 6]; const sum = nums.reduce((x, y) => x + y); console.log(sum); //  14 

Conclusión


En este artículo, te presenté 13 trucos útiles para ayudarte a escribir código limpio y conciso. Además, no olvide que hay muchos trucos diferentes que puede usar en Javascript y que vale la pena estudiar no solo para trabajar con matrices, sino también para otras estructuras de datos. Espero que les hayan gustado las soluciones presentadas en el artículo y las usen para mejorar el proceso de desarrollo.

¡Que tengas un buen código de escritura!

Source: https://habr.com/ru/post/476042/


All Articles