js的数组或者对象的递归遍历问题
例如给定一个数组,他里面可能嵌套数组,嵌套的数组里面可能还有数组。
这种想得到所有元素组成一个数组,可以考虑用 递归遍历数组
递归遍历数组
例如[2,[6,7,12,34,3],[5,23,[1]]]
var arrs = [2 , [6,7,12,34,3] , [ 5,23,[1],9] ] ;
var arr = [];
function recursive(arrs) {
for(var i = 0; i < arrs.length; i++){
if(typeof arrs[i] === "number" ) {
arr.push( arrs[i] );
}else{
recursive( arrs[i] );
}
}
}
recursive(arrs);
console.log(arr);
递归遍历对象
var obj = {
a:{
name : "maoguotao",
age : 18,
sex : 'M',
},
b:{
name : "maoshuqin",
age : 18,
sex : 'M',
},
c:{
name : "MGT360124",
age : 18,
sex : 'M',
title : {
job:"班长"
}
}
};
var arr = [];
function f( obj ) {
for( var i in obj ) {
if ( typeof obj[i] === "object" ) {
f ( obj[i] );
}else{
arr.push( obj[i] );
}
}
}
f( obj );
console.log(arr);
遍历对象的属性用for-in,但是要用hasOwnProperty判断
var obj = {
name:"maoguotao",
age:18,
sex:'M'
}
for ( var i in obj ) {
if( obj.hasOwnProperty ( i ) ){
console.log( i + ":" + obj[i] );
}
}
点击查看更多内容
5人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦