Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/11/2004, 17:21
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
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
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo