JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
废话不多说了,直奔主题,你,具体代码如下所示:
<script>
//----------------for用来遍历数组对象--
vari,myArr=[1,2,3];
for(vari=0;i<myArr.length;i++){
console.log(i+":"+myArr[i]);
};
//---------for-in用来遍历非数组对象
varman={hands:2,legs:2,heads:1};
//为所有的对象添加clone方法,即给内置原型(object,Array,function)增加原型属性,该方法很强大,也很危险
if(typeofObject.prototype.clone==="undefined"){
Object.prototype.clone=function(){};
}
//
for(variinman){
if(man.hasOwnProperty(i)){//filter,只输出man的私有属性
console.log(i,":",man[i]);
};
}
//输出结果为printhands:2,legs:2,heads:1
for(variinman){//不使用过滤
console.log(i,":",man[i]);
}
//输出结果为
//hands:2index.html:20
//legs:2index.html:20
//heads:1index.html:20
//clone:function(){}
for(variinman){
if(Object.prototype.hasOwnProperty.call(man,i)){//过滤
console.log(i,":",man[i]);
}
}//输出结果为printhands:2,legs:2,heads:1</script>
接下来给大家介绍js递归遍历对象、数组、属性
在前端工作时,有时我们需要遍历一些未知类型的对象。代码如下:
//js遍历对象
functionTraversalObject(obj)
{
for(varainobj){
if(typeof(obj[a])=="object"){
TraversalObject(obj[a]);//递归遍历
}
else{
alert(a+"="+obj[a]);//值就显示
}
}
}
//遍历对象中所有Ur的值
functionTraversalObject(obj)
{
for(varainobj){
if(a=="Url") alert(obj[a]);//显示URL的值
if(typeof(obj[a])=="object"){
TraversalObject(obj[a]);//递归遍历
}
}
}
这种遍历方法在对象不规则但需要获取相同属性时起到非常好的作用。