为了账号安全,请及时绑定邮箱和手机立即绑定

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人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消