for/in 循環遍歷對象的屬性


for/in 語句循環遍歷對象的屬性。 
js中獲取key得到某對象中相對應的value的方法:obj.key 
js中根據動態key得到某對象中相對應的value的方法有二: 

一、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

使用 for in 循環遍歷對象的屬性時,原型鏈上的所有屬性都將被訪問: 

Object.prototype.bar = 10;// 修改Object.prototype  
var obj={"name":"wjy","age":26,"sex":"female"};//定義一個object對象    
var keys=[];//定義一個數組用來接受key    
var values=[];//定義一個數組用來接受value    
  for(var key in obj){    
    keys.push(key);    
    values.push(obj[key]);//取得value      
    }    
alert("keys is :"+keys+" and values is :"+values);   
//keys is : name,age,sex,bar and values is : wjy,26,female,10   

推薦總是使用 hasOwnProperty 方法, 這將會避免原型對象擴展帶來的干擾: 

function allpro(obj){  
    var keys=[];   
    var values=[];    
    for(var key in obj){   
        //只遍歷對象自身的屬性,而不包含繼承於原型鏈上的屬性。  
        if (obj.hasOwnProperty(key) === true){  
            keys.push(key);    
            values.push(obj[key]);   
            }                 
        }  
    alert("keys is :"+keys+" and values is :"+values);    
}  
Object.prototype.bar = 1;// 修改Object.prototype  
var o={"name":"wjy","age":26,"sex":"female"};//定義一個object對象   
allpro(o);  
//keys is : name,age,sex and values is: wjy,26,female  

object對象沒有length屬性,那么獲取object對象的length就可以通過遍歷得到key值的數組的長度來獲取啦~ 

keys.length;//"3"  

ref:http://wangjingyi.iteye.com/blog/2038264


免責聲明!

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



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