Eu encontrei um problema recentemente:
A cópia do código é a seguinte:
var obj = {"name1": "zhang san", "name2": "li si"};
var key = "name1";
var valor = obj.key; // é "indefinido"
valor = obj.name1; // obtenha "Zhang San"
Na verdade, quero atribuir dinamicamente um valor à chave e obter o valor da chave tanto quanto ela. Mas essa abordagem não funciona.
Então, pensei em uma maneira de atravessar as propriedades do objeto em JS:
A cópia do código é a seguinte:
Função PrintObject (obj) {
// obj = {"cid": "c0", "ctext": "distrito e condado"};
var temp = "";
para (var i em obj) {// percorre as propriedades do objeto com javascript para/in
temp+= i+":"+obj [i]+"/n";
}
alerta (temp); // Resultado: CID: C0/N CTEXT: Distrito e Condado
}
Dessa maneira, você pode saber claramente qual é a chave e o valor de um objeto em JS, respectivamente.
Voltando à pergunta agora, como atribuir dinamicamente um valor à chave e depois obter o valor correspondente no obj.key?
De fato, existe um prompt no PrintObject acima, ou seja, o método OBJ [KEY] é usado, a chave pode ser dinâmica, que resolve o problema que eu levantei acima.
Finalmente, há outro método que pode ser feito, ou seja: EVALL ("Obj".+Tecla).
Resumir:
Existem duas maneiras de obter o valor correspondente em um determinado objeto baseado em chave dinâmica em JS:
1. Var key = "name1"; var value = obj [key];
2. Var key = "name1"; var valor = avaliar ("obj."+Key);