¿Cómo hago referencia a un objeto dinámicamente?
-
05-07-2019 - |
Pregunta
En Javascript, tengo un objeto:
obj = { one: "foo", two: "bar" };
Ahora, quiero hacer esto
var a = 'two';
if(confirm('Do you want One'))
{
a = 'one';
}
alert(obj.a);
Pero, por supuesto, no funciona. ¿Cuál sería la forma correcta de hacer referencia a este objeto de forma dinámica?
Solución
respuesta corta: obj[afont>
respuesta larga: obj.field
es solo una abreviatura de obj [" field "]
, para el caso especial donde la clave es una cadena constante sin espacios, puntos u otras cosas desagradables. en su pregunta, la clave no era una constante, así que simplemente use la sintaxis completa.
Otros consejos
Me gusta esto:
obj[a]
Como nota al margen, las variables globales se adjuntan a la ventana " objeto, para que puedas hacer
var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);
Esto alertará '' hola, hola, hola ''
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow