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 相关文章推荐
js 对象是否存在判断
Jul 15 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
JavaScript判断数组是否存在key的简单实例
Aug 03 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
JS传参及动态修改页面布局
Apr 13 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
详解Vue中使用插槽(slot)、聚类插槽
Apr 12 Javascript
微信小程序上传图片到php服务器的方法
May 23 Javascript
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
php一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
php字符串函数学习之substr()
2015/03/27 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
bootstrap表格分页实例讲解
2016/12/30 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Python深入学习之闭包
2014/08/31 Python
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
python分割列表(list)的方法示例
2017/05/07 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
TensorFlow实现模型评估
2018/09/07 Python
python开头的coding设置方法
2019/08/08 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
2019/08/12 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
python爬取微博评论的实例讲解
2021/01/15 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
士力架广告词
2014/03/20 职场文书
2014年教育工作总结
2014/11/26 职场文书
心术观后感
2015/06/11 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python