elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [JS] "a.charAt is not a function", ¿por qué?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [JS] "a.charAt is not a function", ¿por qué?  (Leído 5,571 veces)
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
[JS] "a.charAt is not a function", ¿por qué?
« en: 3 Septiembre 2013, 21:35 pm »

Hola, a ver si podéis iluminarme. Llevo trabajando desde las 6.30 de la mañana y ya no doy pie con bola.

He cogido hace un rato este problemilla: dar la parte entera de un número con decimales. Mi intento:

Código
  1. function digit(a){
  2.  
  3. var num = a;
  4. var cifra='';
  5. var cont=0;
  6.  
  7. while(num>1){
  8.  num=num/10;
  9.  cont++;
  10. }
  11. print(a + ' tiene ' + cont + ' enteros');
  12.  
  13. for(var i=0; i<cont; i++){
  14.  cifra = cifra + a.charAt(i);
  15. }
  16. print('La parte entera de ' + a + ' es ' + cifra);
  17. }
  18.  
  19. digit(...)

Pues no me admite la propiedad charAt, me sale este aviso: "Exception: TypeError: a.charAt is not a function in function digit".

Sin embargo el mismo código funciona cuando en vez de una función hago un simple script para números cogidos mediante prompt:

Código
  1. var a = prompt('Escribe un número con decimales');
  2. var num = a;
  3.  
  4. var cifra='';
  5. var cont=0;
  6. while(num>1){
  7.  num=num/10;
  8.  cont++;
  9. }
  10. print(a + ' tiene ' + cont + ' enteros');
  11.  
  12. for(var i=0; i<cont; i++){
  13.  cifra = cifra + a.charAt(i);
  14. }
  15.  
  16. print('La parte entera de ' + a + ' es ' + cifra);
  17.  

¿Dónde está el fallo? Gracias, un saludo.


En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #1 en: 3 Septiembre 2013, 21:57 pm »

Código
  1. digit('12124');
  2.  

?


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #2 en: 3 Septiembre 2013, 21:58 pm »

¿Dónde está el fallo?

No manejo javascript pero la función charAt es para Strings, no para valores numéricos, imagino que por eso el prompt te funciona ya que devolverá un string.

EDITO: No sé si esta concatenación de métodos funcionará, como ya digo no manejo JS, pero ya captas la idea:
Código:
a.tostring.charAt(i)

PD: Solo hay que fijarse un poco más en las cosas, la propia función se llama "charAt", no "digitAt", y un valor numérico contiene dígitos, no caracteres.

Saludos
« Última modificación: 3 Septiembre 2013, 22:02 pm por EleKtro H@cker » En línea



#!drvy


Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #3 en: 4 Septiembre 2013, 00:33 am »

Como te ha dicho EleKtro, charAt espera un string, no un numero. Esa facil comprobacion la puedes hacer al ejecutar

Código
  1. 12345.chartAt(2);

Veras como te dice ILLEGAL token.

Código
  1. cifra = cifra + a.toString().charAt(i);

Saludos
En línea

Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #4 en: 4 Septiembre 2013, 08:12 am »

Anoche después de apagar el ordenador caí en la cuenta de dónde estaba el fallo. ¡Muchas gracias a los tres por la confirmación!  :) :)
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #5 en: 4 Septiembre 2013, 17:12 pm »

Anoche después de apagar el ordenador caí en la cuenta de dónde estaba el fallo. ¡Muchas gracias a los tres por la confirmación!  :) :)

y te quedaste con el placer de la duda?, en lo personal en ese momento habría encendido el pc y corregido el error  :xD

por cierto lo mismo pasa con substring() y length que posiblemente podría pensarse que aplican para un valor numérico.
En línea

abc
Linton

Desconectado Desconectado

Mensajes: 239



Ver Perfil
Re: [JS] "a.charAt is not a function", ¿por qué?
« Respuesta #6 en: 4 Septiembre 2013, 19:32 pm »

Uf ya casi ni veía, llevaba 15 horas seguidas con el ordenador y dejé las ansias personales para la jornada siguiente  ;D

Muchas gracias por el dato, un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines