Javascript-オブジェクトキー->値


89
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

これを行う方法?

回答:


109

[]プロパティの文字列表現に表記を使用します。

console.log(obj[name]);

それ以外の場合は、「a」プロパティではなく「name」プロパティを探します。


17

obj["a"]と同等なobj.a ので、使用obj[name]すると「A」が得られます


1
obj [name]は未定義のobj.nameを返すことに注意してください。
ハミド2015

1
使用バッククォート``あなたは、コードの短い量を書いている場合
JuicY_Burrito

8

次の構文を使用します。

obj[name]

これobj.xは、obj["x"]すべての有効なJS識別子の場合と同じですが、後者の形式では、(有効な識別子だけでなく)すべての文字列がキーとして受け入れられることに注意してください。

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

3

次の構文を使用します。

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

エラーが発生する:

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

メッセージを受け取る:

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

1

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);

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.