Javascript - 对象键 - >值

时间:2011-02-15 07:35:53

标签: javascript

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

console.log(obj.a); // return string : A

但我希望通过像这样的变量

var name = "a";
console.log(obj.name) // but return undefined

怎么做?

7 个答案:

答案 0 :(得分:77)

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

console.log(obj[name]);

否则它正在寻找“name”属性,而不是“a”属性。

答案 1 :(得分:13)

obj [“a”]等同于obj.a 所以使用obj [name]得到“A”

答案 2 :(得分:6)

使用以下语法:

obj[name]

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

obj["Hey, this is ... neat?"] = 42

答案 3 :(得分:3)

我使用以下语法:

objTest = {"error": true, "message": "test message"};

获取错误:

 var name = "error"
 console.log(objTest[name]);

获取消息:

 name = "message"
 console.log(objTest[name]);

答案 4 :(得分:0)

https://jsfiddle.net/sudheernunna/tug98nfm/1/

 var days = {};
days["monday"] = true;
days["tuesday"] = true;
days["wednesday"] = false;
days["thursday"] = true;
days["friday"] = false;
days["saturday"] = true;
days["sunday"] = false;
var userfalse=0,usertrue=0;
for(value in days)
{
   if(days[value]){
   usertrue++;
   }else{
   userfalse++;
   }
    console.log(days[value]);
}
alert("false",userfalse);
alert("true",usertrue);

答案 5 :(得分:0)

var o = { cat : "meow", dog : "woof"};
var x = Object.keys(o);

for (i=0; i<x.length; i++) {
  console.log(o[x[i]]);
}
  

IAB

答案 6 :(得分:0)

你可以像这样获得 valuekey ......

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

console.log(obj.a);

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

name = "a";
console.log(obj[name])