Hola otra vez:
En alguna implementación he usado métodos de los arrays, pero parece que en versiones viejas de los exploradores no valen, entonces preparé nuevas versiones que se corresponden con pop(), shift(), slice() y concat():
//pop()
Código:
Array.prototype.desapilarUltimo = function() {
devolver = this[this.length - 1];
this.length--;
return devolver;
}
//shift()
Código:
Array.prototype.desapilarPrimero = function() {
devolver = this[0];
for (var i = 0, mayor = this.length - 1; i < mayor; i ++)
this[i] = this[i + 1];
this.length--;
return devolver;
}
//slice()
Código:
Array.prototype.subArray = function(primero, ultimo) {
devolver = new Array(ultimo - primero);
for (var i = 0, mayor = ultimo - primero; i <= mayor; i ++)
devolver[i] = this[i + primero];
devolver.length = ultimo - primero;
return devolver;
}
//concat()
Código:
Array.prototype.encadenar = function() {
for (var i = 0, mayor = arguments.length; i < mayor; i ++)
for (j = 0, mayorEnArray = arguments[i].length; j < mayorEnArray; j ++)
this[this.length] = arguments[i][j];
return this;
}
Entonces por cada aparición de pop() abría que poner desapilarUltimo()... shift() por desapilarPrimero()... slice() por subArray() y concat() por encadenar().
Saludos