Creando objetos tipo matriz en JavaScript
En JavaScript, hay objetos que pretenden ser arreglos (o son "como arreglos"). Tales objetos sonarguments
, NodeList
s (devuelto degetElementsByClassName
, etc.), y objetos jQuery.
Cuandoconsole.log
Ged, aparecen como matrices, pero no lo son. Sé que para ser como una matriz, un objeto debe tener unalength
propiedad.
Así que hice un "objeto" como este:
function foo(){
this.length = 1;
this[0] = "bar";
}
var test = new foo;
Cuando yoconsole log(test)
, Recibo (como se espera) unfoo
objeto. Puedo "convertirlo" a una matriz usando
Array.prototype.slice.call(test)
Pero, no quiero convertirlo, quiero que sea como un arreglo. ¿Cómo hago un objeto similar a una matriz, de modo que cuando estáconsole.log
Ged, aparece como una matriz?
Intenté establecerfoo.prototype = Array.prototype
, peroconsole.log(new foo)
todavía muestra unfoo
Objeto, y no una matriz.