js如何獲取object類型里的鍵值


最近遇到一個問題:

var obj = {"name1":"張三","name2":"李四"}; 
var key = "name1"; 
var value = obj.key;//得到了"undefined" 
value = obj.name1;//得到了"張三" 

其實我是想動態給key賦值,然后得到key為多少所對就的值。但這種做法行不通,obj.key會去找obj下key為"key"所對應的值,結果當然是找不到嘍。 
於是,我想到了js中遍歷對象屬性的方法:

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)

總結: 
js中想根據動態key得到某對象中相對應的value的方法有兩個(⊙o⊙)哦: 
一、var key = "name1";var value = obj[key]; 
二、var key = "name1";var value = eval("obj."+key);

栗子:

var obj={"name":"tom","age":22,"job":"it"};
var keys="name";
console.log(obj[keys]);   //tom 
console.log(eval("obj."+keys));   //tom

ref:http://www.jb51.net/article/46953.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM