其實我是想動態給key賦值,而後獲得key爲多少所對就的值。但這種作法行不通,obj.key會去找obj下key爲"key"所對應的值,結果固然是找不到嘍。
因而,我想到了js中遍歷對象屬性的方法:javascript
function printObject(obj){ //obj = {"cid":"C0","ctext":"區縣"}; var temp = ""; for(var i in obj){//用javascript的for/in循環遍歷對象的屬性 temp += i+":"+obj[i]+"\n"; } alert(temp);//結果:cid:C0 \n ctext:區縣 }
這樣,就能夠清楚的知道js中一個對象的key和value分別是什麼了。
回到剛纔的問題,怎麼動態給key賦值,而後以obj.key的方式獲得對應的value呢?
其實以上printObject中有提示,那就是用obj[key]的方法,key能夠是動態的,這樣就解決了我上面提出的問題了。
最後說一下,還有一個方法也能夠,那就是:eval("obj."+key)。html
總結:
js中想根據動態key獲得某對象中相對應的value的方法有兩個(⊙o⊙)哦:
1、var key = "name1";var value = obj[key];
2、var key = "name1";var value = eval("obj."+key);java
栗子:json
var obj={"name":"tom","age":22,"job":"it"}; var keys="name"; console.log(obj[keys]); //tom console.log(eval("obj."+keys)); //tom
JS獲取JSON對象中的KEY和VALUE
var json= { "Type": "Coding", "Height":100 }; for (var key in json) { alert(key); //Type, Height alert(json[key]); //Coding, 100 } $.each(json, function(i) { alert(json[i]); //Coding, 100 alert(i); //Type, Height });