JS实现遍历不规则多维数组的方法


Posted in Javascript onMarch 21, 2018

本文实例讲述了JS实现遍历不规则多维数组的方法。分享给大家供大家参考,具体如下:

直接进入正文:

我们有时候处理数据,可能会遇到一些不规则(无法预料的数据结构),那么拿到这种数据我们如何进行遍历操作呢?举个例子:

var data= {
    a: { one: 1, two: 2, three: {four:'2',five:'4'} },
    b: { six: 4, seven: 5, eight: 6 },
    c: { nine: 7, ten: 8}
}

比如上边的数据(实际情况是这个数据会有各种不可预料的变化),如果想遍历这种数据,用单纯的for in就无法遍历了。

其实这种数据遍历也简单,使用递归的方法,就可以完美的解决这个问题

代码如下:

function traverse(obj) {
    for (var a in obj) {
      if (typeof(obj[a]) == "object") {
        traverse(obj[a]); //递归遍历
      } else {
        console.log(a + "=" + obj[a]); //如果是值就显示
      }
    }
}
traverse(data)

最后我们只要调用这个方法,把obj传入,就成功的遍历了整个data

本例运行结果如下:

JS实现遍历不规则多维数组的方法

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
无语,javascript居然支持中文(unicode)编程!
Apr 12 Javascript
javascript管中窥豹 形参与实参浅析
Dec 17 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
Oct 10 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
js实现京东轮播图效果
Jun 30 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
Apr 25 Javascript
Moment.js实现多个同时倒计时
Aug 26 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
Apr 20 Javascript
Vue封装Axios请求和拦截器的步骤
Sep 16 Javascript
vue $router和$route的区别详解
Dec 02 Vue.js
vue项目关闭eslint校验
Mar 21 #Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 #Javascript
使用Vue.js和Flask来构建一个单页的App的示例
Mar 21 #Javascript
JS代码实现电脑配置检测功能
Mar 21 #Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
Mar 21 #Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 #Javascript
详解PHP后期静态绑定分析与应用
Mar 21 #Javascript
You might like
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
简单的自定义php模板引擎
2016/08/26 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
让html页面不缓存js的实现方法
2014/10/31 Javascript
node.js中的console用法总结
2014/12/15 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
在Vue项目中使用jsencrypt.js对数据进行加密传输的方法
2019/04/17 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
Python 实现简单的客户端认证
2020/07/29 Python
Python程序慢的重要原因
2020/09/04 Python
夜班门卫岗位职责
2013/12/09 职场文书
高二物理教学反思
2014/02/08 职场文书
七夕活动策划方案
2014/08/16 职场文书
志愿者事迹材料
2014/12/26 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python
游戏《铁拳》动画化!2022年年内播出
2022/03/21 日漫
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL
Hive日期格式转换方法总结
2022/06/25 数据库