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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Pregunta]: Problemas con javascript (eval)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta]: Problemas con javascript (eval)  (Leído 3,107 veces)
Leguim


Desconectado Desconectado

Mensajes: 720



Ver Perfil
[Pregunta]: Problemas con javascript (eval)
« en: 14 Octubre 2021, 21:44 pm »

Hola,

estaba tratando de hacer esto:
Código
  1. let string = 'form_x.input_1.value, form_x.input_2.value, form_x.input_3.value, form_x.input_4.value';
  2.  
  3. // si yo hago..
  4. eval([string]); // esto va a crear un arreglo donde solamente agregará el último elemento, es decir el valor del input 4... Los demás no me aparecen.
  5. [code]
[/code]


En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.853


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: [Pregunta]: Problemas con javascript (eval)
« Respuesta #1 en: 14 Octubre 2021, 22:39 pm »

Hola, eso no funciona así, tenés que usar una matriz para agregar arrays o un array para insertar los strings.

Primero tenés que crear un array vacío, después usar un bucle que recorra los elementos de tu string para ir agregandolos a tu array, por lo que cada ciclo/vuelta que de el bucle, va a ir sumando elementos a tu array/arreglo.

Básicamente tu arreglo/array quedaría así:

Código
  1. arrayInputs
  2. ["form_x.input_1.value", "form_x.input_2.value", "form_x.input_3.value", "form_x.input_4.value"]


Saludos


« Última modificación: 14 Octubre 2021, 22:42 pm por Danielㅤ » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Problemas con javascript (eval)
« Respuesta #2 en: 14 Octubre 2021, 23:55 pm »

Poner el string entre corchetes no hace nada aquí... La función de eval convierte el arreglo a un string de vuelta, por lo que acabas haciendo:

Código
  1. eval('form_x.input_1.value, form_x.input_2.value, form_x.input_3.value, form_x.input_4.value');

Lo cual evalúa al último valor separado por coma (así funciona el operador de la coma en javascript).

Si lo que quieres es convertir el string en un arreglo, la forma más fácil es hacer un split...

Código
  1. let arr = string.split(', ');

Edit:

Me doy cuenta que el arreglo tal cual no es exactamente como lo que quieres. Si esas son variables y propiedades de javascript puedes hacer dos cosas.

Hacer eval de un arreglo en forma de string:

Código
  1. let arr = eval(`[${string}]`);

O hacer eval a cada elemento de la lista:

Código
  1. let arr = string.split(', ').map(eval);

Probablemente sea mejor una llama directa de eval (dependiendo del contexto de las variables).

Código
  1. let arr = string.split(', ').map(e => eval(e));
« Última modificación: 15 Octubre 2021, 02:58 am por MinusFour » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta en javascript « 1 2 »
Desarrollo Web
emma93 10 5,389 Último mensaje 2 Octubre 2010, 03:38 am
por Dznp
Pregunta javascript
Desarrollo Web
Riki_89D 4 3,367 Último mensaje 1 Diciembre 2010, 21:57 pm
por Riki_89D
javascript seguridad eval
Desarrollo Web
matake 3 3,026 Último mensaje 25 Julio 2016, 03:07 am
por engel lex
[Resuelto] [Pregunta]: ¿Como puedo pasar de html(); a eval();?
Desarrollo Web
Leguim 4 2,743 Último mensaje 21 Agosto 2019, 22:03 pm
por Leguim
equivalente a eval()? | javascript
Desarrollo Web
Drakaris 3 2,736 Último mensaje 25 Enero 2021, 00:17 am
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines