Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

251
Vistas
Uso de javascript eval() para funciones privadas/de uso propio. ¿Debo evitarlo?

Así que tengo un objeto. Y el objeto tiene 6 variables (a, b, c, d, e, f)

Algo como esto:

 let obj={ a:0, b:0, ... ... }

Estoy pasando este objeto como un parámetro de función y la función tiene que establecer los valores de todas las variables (a a f). Los valores simplemente se copian de otras variables (llamémoslas u, v, w, x, y, z).

Según la elección del usuario (mi propia), a podría asignarse a w o y o z, etc. Actualmente estoy haciendo esto manualmente así:

 obj.a=x; obj.b=y; obj.c=w; ... ...

El problema es que quiero que este patrón de mapeo sea muy flexible. Quiero cambiar todo el mapeo con el menor cambio de codificación y quiero que la codificación sea lo más mínima/limpia posible. Actualmente hay 4 posibles opciones de mapeo basadas en cómo quiero hacerlo en tiempo de ejecución. Pero quiero agregar más opciones y, como se mencionó anteriormente, quiero que las asignaciones sean muy fáciles de cambiar.

¿Debo declarar una cadena de mapeo y usar eval para automatizar el mapeo? Entonces tendría que simplemente cambiar la disposición de las cadenas y los valores se asignarán automáticamente. Algo como esto:

 var mapping="xyzuvw", values="abcdef"; for(var i=0;i<6;++i) //using 6 since mapping string is of 6 chars eval("obj."+values[i]+"="+mapping[i]);

Como puede ver, solo tengo que cambiar (o crear una nueva) cadena de mapeo y toda la secuencia de mapeo se automatiza.

El software está destinado enteramente para mi uso personal/privado.

¿Debo usar eval() para automatizar este proceso de mapeo o debo editar manualmente (y crear una nueva) la codificación de mapeo si quiero cambiar el patrón de mapeo?

Como en, ¿el uso de eval() hará que el código sea propenso a problemas de procesamiento, errores de tiempo de ejecución, etc.?

¿Será más fácil mantener el código en el futuro con eval() o con mapeo manual?


Editar para agregar:

Para los miembros que me están refiriendo a la propiedad del objeto de acceso dinámico usando variabl , tenga en cuenta que estoy tratando de automatizar el nombre de la variable de destino (cuyo valor queremos copiar) y no el nombre de la variable base (cuyo valor queremos cambiar). Como en, quiero automatizar si obj.a = x; o si obj.a=y;

Gracias.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda