對象屬性鍵值[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中遍歷對象屬性的方法:

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

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

 


免責聲明!

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



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