Pergunta

Em Javascript, eu tenho um objeto:

obj = { one: "foo", two: "bar" };

Agora, quero que faça isso

var a = 'two';
if(confirm('Do you want One'))
{
  a = 'one';
}

alert(obj.a);

Mas é claro que ele não funciona. Qual seria a maneira correta de fazer referência a este objeto dinamicamente?

Foi útil?

Solução

resposta curta: obj[a]

resposta longa: obj.field é apenas uma abreviação para obj["field"], para o caso especial em que a chave é uma string constante, sem espaços, pontos ou outras coisas desagradáveis. na sua pergunta, a chave não foi uma constante, então basta usar a sintaxe completa.

Outras dicas

Como esta:

obj[a]

Como uma nota lateral, variáveis ??globais estão ligados ao objeto "janela", para que possa fazer

var myGlobal = 'hello';
var a = 'myGlobal';
alert(window[a] + ', ' + window.myGlobal + ', ' + myGlobal);

Este alerta vontade "Olá, Olá, Olá"

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top