Javascript course

Ver Otros Cursos

Accediendo a los elementos de un Array

Los datos pueden ser asignados a un arreglo usando el operador [ ] en una sentencia de asignación. Por ejemplo, el siguiente loop asigna los valores del 1 al 100.

let nums = [];
for (let i = 0; i < 100; i++) {
  nums[i] = i + 1;
} 
console.log(nums.length);

Los elementos de un arreglo pueden ser accedidos usando el operador [ ].

let nums = [1, 2, 3];
let sum = nums[0] + nums[1] + nums[2]; // 6

Por supuesto, acceder a los elementos de un array secuencialmente es mucho más facil usando un bucle for.

let nums = [1, 2, 3, 4, 5];
let sum = 0;

for (let i = 0; i < nums.length; i++) {
  sum += nums[i];
}

console.log(sum); // 15

Además nota que el limite de recorridos del bucle for esta determinado por la propiedad length, en lugar de un tipo de dato entero (literal object). Esto quiere decir que puedo colocar más elementos dentro del arreglo sin la necesidad de cambiar código ya que la propiedad length, siempre va a definirlo.

Creando Arreglos desde Strings

Los arreglos pueden ser creados como resultado de llamar la función split de javascript. Esta funcion divide un String a partir de un delimitador comun, como puede ser los espacios en blanco entre las palabras, y crea elementos de un array a partir de estas separaciones.

const sentence = "Javascript is Interesting";
const words = sentence.split(" ");

for (let i = 0; i < words.length; i++) {
  console.log(`word ${i}: ${words[i]}`);
}

Copiando Arreglos

Para copiar un arreglo, nosotros podemos asignar un arreglo a otro.

var nums = [];

for (var i = 0; i < 10; ++i) {
  nums[i] = i+1;
}

var samenums = nums;
console.log({samenums, nums}) // Ok, are the same

Sin embargo, cuando asignas un array a otro array, lo que estas asignando en realidad es una referencia al array asignado. Esto quiere decir que si haces un cambio al array original, este tambien se ve reflejado en el otro array. El siguiente ejemplo refleja esto.

var nums = [];

for (var i = 0; i < 10; ++i) {
  nums[i] = i+1;
}

var samenums = nums;
nums[0] = 400;

// 400 is in both arrays
console.log({samenums, nums}) 

Esto es llamado una "copia superficial" (del ingles shallow copy). El nuevo arreglo simplemente apunto al arreglo original. Una mejor alternativa es hacer una "copia profunda" (del ingles deep copy), el cual copia cada uno de los elementos de un arreglo original a un nuevo arreglo. Una manera efectiva de hacer esto, es crear una funcion que haga esta tarea.

function copy(arr1, arr2) {
  for (let i = 0; i < arr1.length; i++) {
    arr2[i] = arr1[i];
  }
}

const numsOne = [1, 2, 3];
const numsTwo = [];

copy(numsOne, numsTwo);
// are the same
console.log({numsOne, numsTwo}); 

numsOne[0] = 10;
// are different
console.log({numsOne, numsTwo});

La funcion copy, copia todos los elementos de un arreglo a otro creando dos arreglos distintos e independientes.

Javascript es el lenguaje de la web. Es un lenguaje de scripting que puedes usarlo en cualquier entorno desde aplicaciones web, móviles, aplicaciones de servidor e incluso aplicaciones de escritorio.

vistas