對象屬性鍵值[key]屬性問題

1,obj[key]此時key表明是循環中的一個變量。

  

var obj = {key:3,key1:1,key2:2,key3:3,toSting:4};

    for (key in obj) {

        console.log(obj[key])//循環出3,1,2,3,4

    }

 

2,obj['key']此時key表明的是obj的一個屬性名,須要加上''使用,obj['key']———取obj的key屬性的值

   

 var obj = {key:0,key1:1,key2:2,key3:3};

    console.log(obj['key'])//0

 

3,obj.key此時至關於obj['key'];key是obj的一個屬性名,取obj的key屬性的值

 

    var obj = {key:0,key1:1,key2:2,key3:3};

    console.log(obj.key)//0


使用object.hasOwnProperty(proName)方法肯定object對象是否具備帶指定名稱的屬性。
var s = new String("Sample");
console.log(s.hasOwnProperty("split"));  //false
console.log(obj.hasOwnProperty('key')) //true
console.log(obj.hasOwnProperty('toString')) //false
console.log(String.prototype.hasOwnProperty("split"));//true
 

如何獲取object類型裏的鍵值

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

 

其實我是想動態給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
});
相關文章
相關標籤/搜索