Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Arreglos

Contenidos
  1. Resumen
  2. Operaciones
    1. Crear arreglos
    2. Leer
    3. Filtrar
    4. Insertar
    5. Borrar
    6. Ordenar:
  3. Métodos clave
    1. map
    2. forEach

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