Javascript - 对象键 - >值

Cha*_*ron 73 javascript

var obj = {
   a: "A",
   b: "B",
   c: "C"
}

console.log(obj.a); // return string : A
Run Code Online (Sandbox Code Playgroud)

但我希望通过这样的变量

var name = "a";
console.log(obj.name) // but return undefined
Run Code Online (Sandbox Code Playgroud)

这该怎么做?

Dav*_*ang 88

使用[]符号表示属性的字符串表示:

console.log(obj[name]);
Run Code Online (Sandbox Code Playgroud)

否则它正在寻找"名称"属性,而不是"a"属性.


Roh*_*iya 16

你可以通过这些方式value摆脱...key

var obj = {
   a: "A",
   b: "B",
   c: "C"
};

console.log(obj.a);

console.log(obj['a']);

name = "a";
console.log(obj[name])
Run Code Online (Sandbox Code Playgroud)


小智 14

obj ["a"]相当于obj.a所以使用obj [name]得到"A"

  • 请注意 obj[name] 将返回未定义的 obj.name。 (2认同)

小智 6

使用以下语法:

obj[name]
Run Code Online (Sandbox Code Playgroud)

请注意,obj.x这与obj["x"]所有有效的JS标识符相同,但后一种形式接受所有字符串作为键(不仅仅是有效的标识符).

obj["Hey, this is ... neat?"] = 42
Run Code Online (Sandbox Code Playgroud)