Web BizarroWeb Bizarro

Suscríbete a nuestro Newsletter

X

Únete a nuestra lista de correos para recibir semanalmente actualizaciones de nuestro contenido.

3 cosas que no sabes de los Array en JavaScript

3 cosas que no sabes de los Array en JavaScript 01.AUG.16

Alvaro José Rios Ch
Fundador WebBizarro

Los arreglos en JavaScript se comportan un poco diferente del resto de los lenguajes por lo que puede que alguna vez veamos algún comportamiento un tanto peculiar sin embargo no es algo de que preocuparse para la mayoría de los casos pero te dejamos algunos casos específicos.

 

Agregar propiedades

Los arreglos en realidad son un objeto, por lo que podrías convertirlo directamente en un objeto, como sabes en JavaScript hay dos tipos de datos los primitivos y los objetos, pero los primitivos siempre son envueltos dentro de un objeto.

Los Array son objetos predefinidos en JavaScript que tienes algunas propiedades predefinidas como los índices del Array, propiedades propias del objeto como el lenght del Array, pero también puedes agregar tus propiedades a un arreglo. Ya se que no es algo normal agregar alguna propiedad a los arreglos pero puede que en algunos casos sea necesario, por ejemplo:

var ary = ["orange","apple","lychee"];

ary.itemClass = "fruits";

console.log(ary + " are " + ary.itemClass);

// "orange,apple,lychee are fruits"

Algo que tienes que tener en cuenta es que las propiedades que agregues son enumerables por lo que serán recogidas por ciclos como el for...in.

Ciclos para recorrer los arreglos

Se lo que estas pensando todos sabemos recorrer un arreglo, como sabemos no puedes agregar índices negativos por lo que es fácil recorrerlo si solo hacemos un ciclo para los índices del 0 en adelante pero puede que no sepas que desde EmacScript 6 ahora puedes usar el ciclo for...of para tomar cada uno de los elementos del arreglo según el orden de los índices, por ejemplo.

var ary = ["orange","apple","lychee"];

for (let item of ary){

console.log(item);

}

// "orange", "apple", "lychee"

El número de elementos no es la longitud del arreglos

Esto si es algo que podría causarte problemas si no lo sabes, aunque es algo muy raro debes considerar que en JavaScript la longitud de los arreglos se toma por el índice más alto del arreglo y no por el numero de elementos de por si esta propiedad es muy flexible como puedes ver en el ejemplo.

var ary = [];

ary.length = 3;

console.log(ary.length);

// 3

ary[5] = "abcd";

console.log(ary.length);

// 6

Como puedes ver cuando asignamos el valor al índice 5 la longitud del arreglo se colocó en 6 y tu puedes pensar, bueno pero tal vez el arreglo crea los índices del 0 al 4, pues déjame decirte que estas completamente equivocado, esos índices no existen en el arreglo y lo puedes verificar con el operador in.

console.log(0 in ary);

// false

Este tipo de arreglos se conocen como ‘dispersos’ donde los índices no corresponden al número de elementos, el caso contrario es conocido como arreglos ‘densos’.

La propiedad length también puede usarse para truncar un arreglo ya que esta propiedad siempre es mayor que el índice más alto del arreglo. Por ejemplo:

var ary = [];
ary.length = 3;
console.log(ary.length);
// 3

ary[5] = "abcd";
console.log(ary.length);
// 6

ary.length = 2;
console.log(ary.length);
// 2

console.log(ary[5]);
// undefined