Los arrays en JavaScript son un tipo de estructura de datos que permite almacenar múltiples valores en una sola variable. A diferencia de las variables simples como los números o las cadenas de texto, los arrays pueden tener múltiples valores y elementos.
En esta clase, vamos a explorar algunas de las características avanzadas de los arrays en JavaScript, incluyendo la creación de arrays utilizando la clase constructora Array, copiar arrays, arrays bidimensionales y arrays de múltiples dimensiones.
Creación de Arrays utilizando la Clase Constructora Array
En JavaScript, los arrays se pueden crear de una forma diferente a la tradicional utilizando la clase constructora Array. La clase constructora Array proporciona una forma fácil y flexible de crear arrays con diferentes elementos y longitudes.
let myArray =newArray();
También puedes especificar los elementos que deseas incluir en el array al crearlo, como se muestra a continuación:
let myArray =newArray(1,2,3,4);
Array.from()
La función Array.from() permite crear un nuevo array a partir de un objeto similar a un array o iterable. La sintaxis para utilizar Array.from() es la siguiente:
let myArray =Array.from('hello');console.log(myArray);// ["h", "e", "l", "l", "o"]
Array(n).fill()
La función fill() permite llenar un array con un valor específico. La sintaxis para utilizar fill() es la siguiente:
let myArray =newArray(5).fill(0);console.log(myArray);// [0, 0, 0, 0, 0]
Array.isArray()
La función Array.isArray() permite determinar si un objeto es un array o no. La sintaxis para utilizar Array.isArray() es la siguiente:
let myArray =[1,2,3,4];console.log(Array.isArray(myArray));// true
Copiando Arrays
En JavaScript, es común tener la necesidad de hacer una copia de un array existente, ya sea para manipular los datos sin afectar el array original o para trabajar con múltiples versiones del mismo array. Hay varias maneras de hacer esto en JavaScript, incluyendo la creación de una nueva instancia de un array, el uso de métodos incorporados y el uso del spread operator.
Crear una nueva instancia del array:
Una forma de hacer una copia de un array es crear una nueva instancia del mismo array. Esto se logra usando el constructor Array:
En este ejemplo, se utiliza el operador spread para expandir los elementos del array original en una nueva instancia del constructor Array.
Uso de métodos incorporados:
Otro enfoque para hacer una copia de un array es utilizar los métodos incorporados de JavaScript. Por ejemplo, puedes utilizar el método slice para hacer una copia de un array:
El spread operator es una forma conveniente de hacer una copia de un array. El spread operator se utiliza para expandir los elementos de un array en una lista:
En este ejemplo, se utiliza el spread operator para expandir los elementos del array original en una nueva instancia de un array.
Es importante tener en cuenta que, aunque estos métodos parecen hacer una copia de un array, solo hacen una copia superficial, lo que significa que los elementos dentro del array original y la copia comparten los mismos valores. Si necesitas hacer una copia profunda de un array, es necesario utilizar una biblioteca de terceros o escribir tu propia función para hacer una copia profunda.
Arrays Bidimensionales
Los arrays bidimensionales son un tipo de estructura de datos en la que cada elemento es un array y cada uno de esos arrays contiene más elementos. En otras palabras, son arrays de arrays. Estos pueden ser útiles para representar datos en un formato más organizado, como una tabla o una matriz.
Para crear un array bidimensional, puedes inicializar un array vacío y luego agregar arrays a sus elementos. Aquí hay un ejemplo:
Para acceder a un elemento específico en un array bidimensional, debes proporcionar dos índices. Por ejemplo, si deseas acceder al elemento 5 en el ejemplo anterior, puedes hacerlo de la siguiente manera:
console.log(matrix[1][1]);// Output: 5
Además de crear y acceder a los elementos de un array bidimensional, también puedes copiar un array bidimensional utilizando el spread operator:
En este ejemplo, el spread operator se utiliza para crear una copia profunda del array original, lo que significa que los elementos dentro del array también se copian.
Además de los arrays bidimensionales, también puedes crear arrays de más dimensiones. Por ejemplo, puedes crear un array tridimensional:
Como puedes ver, los arrays de más dimensiones siguen la misma lógica de los arrays bidimensionales, pero con más niveles de índices para acceder a los elementos.
En Javascript, hasta hace poco, no existía una forma oficial y fácil de hacer copias profundas de objetos y arreglos. Ahora existe una nueva API que crea copias profundas llamado structuredClone, el cual tiene un gran soporte con los navegadores actuales:
const array4D =[];for(let i =0; i <3; i++){ array4D[i]=[];for(let j =0; j <3; j++){ array4D[i][j]=[];for(let k =0; k <3; k++){ array4D[i][j][k]=[];for(let l =0; l <3; l++){ array4D[i][j][k][l]= i + j + k + l;}}}}console.log(array4D);
este algoritmo tiene complejidad temporal 0(n^4)
Características avanzadas de arrays:
.
Clase constructora Array: Además de la forma literal de crear arrays, también podemos utilizar la clase constructora Array para crearlos. Por ejemplo:
const array1 = new Array(3);
console.log(array1); // [undefined, undefined, undefined]
Copiar arrays: Podemos copiar arrays de varias maneras, por ejemplo: