Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problemas con la función pop()

Estas en el tema de Problemas con la función pop() en el foro de Javascript en Foros del Web. Hola: En éste mi primer mensaje, acudo a foros del web con una duda. Estoy haciendo los ejercicios del curso de AJAX de la web ...
  #1 (permalink)  
Antiguo 18/03/2013, 06:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Problemas con la función pop()

Hola:

En éste mi primer mensaje, acudo a foros del web con una duda. Estoy haciendo los ejercicios del curso de AJAX de la web librosweb, cambiando cosas sobre las soluciones propuestas por aquello de trastear.

Pues bien, llego al ejercicio 4, en el que se propone hacer una función llamada truncar dentro de la clase String.

Aunque ya he visto la propuesta del curso, estoy intentando otra forma...y no hay forma:

Mi propuesta:
Código:
String.prototype.truncar= function (num)
		{
			if (num<this.length)
			{
			for (var i=0;i<(this.length-num);i++)
				{
				this.pop();
				}
			}
		}
luego la llamo así:
Código:
var frase = "la madre del cordero";
	document.write(frase);
	document.write("<br \>");
	frase.truncar(3);
	document.write(frase);
pero firefox me da un error que me lleva atascado toda la mañana:

TypeError :this.pop is not a function

Y ya no se me ocurre nada de nada.
  #2 (permalink)  
Antiguo 18/03/2013, 06:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problemas con la función pop()

buenas...
efectivamente pop no es una función del objeto String, mas bien es una función del objeto Array. en todo caso, aunque apliques la función pop sobre el string, el string final no sufre cambio alguno.
Código:
var s = 'string';
Array.prototype.pop.call(s); // devuelve 'g';
console.log(s); // imprime 'string';
para tu cometido, tienes que utilizar cualquiera de las funciónes disponibles para manipular strings: slice, splice, substring. si aún así quieres usar pop, tendrías que primero convertir el string en un array para entonces aplicar pop y luego convertir el array en string.
Código:
var s = 'string';
var a = s.split('');
a.pop(); // devuelve el último elemento del array, 'g';
s = a.join('');
console.log(s); // imprime 'strin';
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 18/03/2013 a las 06:57
  #3 (permalink)  
Antiguo 18/03/2013, 09:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Problemas con la función pop()

Cita:
efectivamente pop no es una función del objeto String, mas bien es una función del objeto Array
Ay ay ay...qué burro que soy. Muchas gracias por la respuesta, y por la solución alternativa que planteas.

¡Saludos y gracias de nuevo!

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:34.