Arreglos
Contenidos
En muchos de los lenguajes de programación imperativos y modernos encontraremos implementada la estructura de dato Arreglo. En Javascript la estructura está implementada utilizando internamente Objetos. Es decir, un arreglo es un objeto que utiliza índices ‘numéricos’ como nombres de sus propiedades o keys. Dicho de otra forma, JavaScript no tiene explícitamente la estructura Array, pero a través de sus objetos “Arrays” es posible replicar su versatilidad.
Resumen
- Un arreglo es un conjunto ordenado de valores.
- Es una de las estructuras de datos más básicas.
- Útil y versátil para muchas situaciones.
- Tienen su propio set de atributos y métodos para realizar operaciones frecuentes.
var languages = ["javascript", "python", "rust", "julia", "ruby"] // Try it out. Play with different indexes console.log(`You should try some ${languages[1]}`)
Representación visual de arrayName
0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
“javascript” | “python” | “rust” | “julia” | “ruby” |
Operaciones
Independiente del lenguaje, en su día a día, el desarrollador necesitará realizar las siguientes operaciones sobre la estructura de datos array:
Crear arreglos
Hay tres formas de definir arreglos en JavaScript:
var arrayOne = new Array(1,2,3); var arrayTwo = Array(1,2,3) var arrayThree = [1,2,3] console.log(arrayOne) console.log(arrayTwo) console.log(arrayThree)
La forma preferida es la última, conocida como notación literal.
Los arreglos pueden contener cualquier cualquier tipo de valor
var arrayOne = ["string", 42.0, true, undefined,[1,2,3],null, {}] console.log(arrayOne)
Leer
Obtener el valor asociado a un índice en particular
var languages = ["javascript", "python", "rust", "julia", "ruby"] // Try it out. Play with different indexes console.log(languages[0]) console.log(languages[1]) console.log(languages[-1])
Filtrar
Filtrar el/los valores que cumplen con cierto criterio
var languages = ["javascript", "python", "rust", "julia", "ruby"] var searchJ = languages.filter(function(language) { return language[0] === "j"; }); // Try it out. Play with different indexes console.log(searchJ)
Insertar
Agregar en elementos en posiciones específicas: inicio, final, índice
var languages = ["javascript", "python", "rust", "julia", "ruby"] languages.push("Go") languages.unshift("Scala") languages[5] = 'typescript' console.log(languages)
Borrar
Para borrar elementos usamos el operador delete
. Este operador no modifica el largo del arreglo. Reemplaza el elemento por undefined
El largo del arreglo lo encontramos en su propiedad length
.
var languages = ["javascript", "python", "rust", "julia", "ruby"] console.log(languages.length) delete languages[2] console.log(languages.length) console.log(languages)
Ordenar:
const months = ['March', 'Jan', 'Feb', 'Dec']; months.sort(); console.log(months); // Expected output: Array ["Dec", "Feb", "Jan", "March"] const array1 = [1, 30, 4, 21, 100000]; array1.sort(); console.log(array1); // Expected output: Array [1, 100000, 21, 30, 4]
Métodos clave
Una de las ventajas de los arreglos en JavaScript es que son en realidad objetos, es decir, tienen métodos que permiten acceder a sus elementos para realizar operaciones frecuentes.
map
El método map()
crea un nuevo array con los resultados de la llamada a la función indicada aplicados a cada uno de sus elementos.
var numbers = [1, 5, 10, 15]; var doubles = numbers.map(function(x) { return x * 2; }); console.log(numbers) console.log(doubles) var numbers = [1, 4, 9]; var roots = numbers.map(function(num) { return Math.sqrt(num); }); console.log(numbers) console.log(roots)
forEach
El método forEach()
ejecuta la función indicada una vez por cada elemento del array.
const array1 = ['a', 'b', 'c']; array1.forEach(function(element){ console.log(element) });
El atributo .length
no es la cantidad de elementos. Ver borrar