Foros del Web » Programando para Internet » Javascript »

Perdón pero estará bien recorrer la array así?

Estas en el tema de Perdón pero estará bien recorrer la array así? en el foro de Javascript en Foros del Web. Hola, a todos. He decidido dividir mi pregunta en tres partes 1. Lo que necesito. 2. Lo que hice. 3. Mi problema. 1. Habiendo ingresado ...
  #1 (permalink)  
Antiguo 02/02/2005, 13:55
Avatar de GG
GG
Usuario no validado
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago, Chile
Mensajes: 195
Antigüedad: 22 años, 2 meses
Puntos: 0
Perdón pero estará bien recorrer la array así?

Hola, a todos.
He decidido dividir mi pregunta en tres partes
1. Lo que necesito.
2. Lo que hice.
3. Mi problema.

1. Habiendo ingresado una palabra cualquiera, necesito que cada una de las letras se reemplace por un número según una tabla determinada y se sumen para obtener el número mágico.

2. Para eso hice lo siguiente (están comentariadas todas mis inseguridades e ignorancia)
Código PHP:
// ¿así es correcta la forma de construirla?
// la idea general es que si hay una A escrita, se reemplace por un 1, si hay una F por un 6.
var num;
var 
numerologia = new Array() ;
numerologia[1] =["A""J""S"];
numerologia[2] =["B""K""T"];
numerologia[3] =["C""L""U"]; 
numerologia[4] =["D""M""V"];
numerologia[5] =["E""N""W"];
numerologia[6] =["F""O""X"];
numerologia[7] =["G""P""Y"];
numerologia[8] =["H""Q""Z"];
numerologia[9] =["I""R"""];

function 
calcular(nombre){      
//comienzo mi recorrido por cada letra del nombre    
    
for (var a=1;a<nombre.length;a++){ 
//saco la primera letra. Ideal sería transformarla en mayúscula inmediatamente, pero creo que anda un código por las FAQs
    
var letra=nombre.charAt(a);
    
// ¿será una forma correcta de recorrer mi array?
        
for (var f=1;f<10;f++){
            for(var 
c=1;c<4;c++){
            if (
numerologia[f,c]==letra)
                {
                
// no me pesca 
                
num=num+f;
                }
            }
        }
    }
    
//me dice que la variable num no está definida
    
alert("Tu número es "num)
    } 

</script>

</HEAD>

<BODY>
<form action="javascript:alert('HOLAA!!')" 
      method="post" 
      name="formuario" 
      id="formuario"> 
      <input type="text" 
             name="caja" 
             size="130" 
             onblur="calcular(this.value)"> 
       
       
      </form> 
3. Mi problema es que no me saca el número mágico.

Agradezco la ayuda,

Saludos a todos.
  #2 (permalink)  
Antiguo 02/02/2005, 14:42
Avatar de phpec  
Fecha de Ingreso: noviembre-2004
Mensajes: 70
Antigüedad: 19 años, 5 meses
Puntos: 0
Aki ta la función para reemplazar

espero ke te sirva


<script language="javascript">

function calcular(nombre){

var letras = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
var valores = new Array(1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4, 5,6,7,8);

var num = 0;

for(i = 0; i < nombre.length; i++){

var miChar = new String(nombre.charAt(i)).toUpperCase()

var miPos = letras.indexOf(miChar)

num = num + valores[miPos]

}

alert("Tu numero es:" + new String(num))

}

</script>

</HEAD>

<BODY>
<form action="javascript:alert('HOLAA!!')"
method="post"
name="formuario"
id="formuario">
<input type="text"
name="caja"
size="130"
onblur="calcular(this.value)">


</form>

saludillos
espero tus comentarios
  #3 (permalink)  
Antiguo 02/02/2005, 15:00
Avatar de GG
GG
Usuario no validado
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago, Chile
Mensajes: 195
Antigüedad: 22 años, 2 meses
Puntos: 0
Mara villoso
Soy feliz. :D :D :D
Grcias
  #4 (permalink)  
Antiguo 02/02/2005, 16:01
Avatar de GG
GG
Usuario no validado
 
Fecha de Ingreso: febrero-2002
Ubicación: Santiago, Chile
Mensajes: 195
Antigüedad: 22 años, 2 meses
Puntos: 0
Pucha ahora no me funicona la otra parte
Que si tiene dos dígitos el número me sume los dígitos.
Le puse
Código PHP:
var numero = new String(num)
if (
numero.length>=1)
{var 
numero2=num.charAt(0)+num.charAt(1)
 } 
alert("Tu numero es:" numero2
pero nada
  #5 (permalink)  
Antiguo 06/02/2005, 23:16
 
Fecha de Ingreso: febrero-2004
Mensajes: 221
Antigüedad: 20 años, 2 meses
Puntos: 0
GC tenes un problema de conceptos generales.

Como sabras, tenes diferentes tipos de datos. Por ejemplo 50 es un entero, pero yo puedo considerar 50 un string, una cadena.

Si un usuario tipea el numero en un <input type="text"> y accedes al valor, normalmente lo almacenaras en una string -o no-, obtendras su valor entero y luego lo trataras.

Entonces, tu problema es que estas sumando dos caracteres, y en javascript cuando utilizas el + con strings, concatena (une). Tu script esta tomando el caracter 0 5 y luego el 1 0 , por ejemplo, entonces une los dos numeros y los imprime.

La solucion es pasar de string a entero. En javascript lo haces con parseInt.

Código HTML:
<script>

num = '50';
var numero = new String(num)
if (numero.length>=1)
{var numero2=parseInt(num.charAt(0))+parseInt(num.charAt(1))
}
alert("Tu numero es:" + numero2) 

</script> 
Esto funciona correctamente.
Ahora, tambien podemos hacer calculos para lograrlo. Seguramente esto sera mas rapido..

Código HTML:
<script type="text/javascript">

/* Defino a num como string porque posiblemente sera el valor de un formulario en el futuro */
num = '51';

/* Obtengo el valor entero de num. Recorda que los lenguajes interpretan de derecha a izquierda, osea que obtiene el valor entero de num y lo asigna a num :P */
num = parseInt(num);

/* Saco la cifra1 haciendo una aproximacion matematica */
cifra1 = Math.floor(num / 10);

/* Saco la cifra 2 restando */
cifra2 = num - (cifra1) * 10;

resultado = cifra1 + cifra2;
alert(resultado);

</script> 
Como sabras, Javascript es mucho mas veloz tratando con numeros que con cadenas
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 13:08.