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

80
Views
Cómo actualizar una variable dentro de una variable en JavaScript

Tengo lo siguiente en mi script

 var mycolor = 'blue'; var option; option = { grid: { color: mycolor }, axis: { color: mycolor } }

Entonces, quiero cambiarlo a rojo. forma habitual sería

 option.grid.color = 'red' option.axis.color = 'red'

Así funciona; sin embargo, cuando pruebo mycolor='red' , no se actualiza en var option . ¿Cómo puedo en una línea cambiar el color en la opción? Por ejemplo, quiero un comando como option.*.color = red . Gracias

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Los objetos son "referencias" hasta que los clones, así que esto funciona:

 var myColor = { color: 'blue' }; var option; option = { grid: myColor, axis: myColor, }; console.log(option); // { grid: { color: 'blue' }, axis: { color: 'blue' } } myColor.color = 'red'; console.log(option); // { grid: { color: 'red' }, axis: { color: 'red' } }

Tenga en cuenta que no reasigna la variable myColor aquí, eso no funcionaría; en su lugar, establece la propiedad de color dentro del objeto que se usa dos veces en las opciones, actualizando así el valor dentro del objeto al que se hace referencia en las opciones también.

about 4 years ago · Juan Pablo Isaza Report

0

Lo que intenta hacer no es asignar una variable a la opción, sino simplemente pasar el valor a las propiedades del objeto.

Puede usar un setter en el objeto de opción.

 option = { grid: { color: "red", }, axis: { color: "red", }, set color(color) { this.grid.color = color; this.axis.color = color; }, }; console.log(option.grid.color); console.log(option.axis.color); option.color = "blue"; console.log(option.grid.color); console.log(option.axis.color);

Editar: actualice todas las propiedades con el color del nombre en el objeto

 option = { grid: { color: "red", }, axis: { color: "red", }, set allColor(color) { const setColor = obj => { if ( typeof obj === "object" && !Array.isArray(obj) && obj !== null ) { Object.keys(obj).forEach(key => { if (key === "color") { obj[key] = color; } setColor(obj[key]); }); } }; setColor(this); }, get allColor() { return null; }, }; console.log(option); option.allColor = "blue"; console.log(option);

about 4 years ago · Juan Pablo Isaza Report
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!