Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

250
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!