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 获取元素样式必杀技
May 04 Javascript
jquery使用ul模拟select实现表单美化的方法
Aug 18 Javascript
JavaScript实现的浮动层框架用法实例分析
Oct 10 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
Jan 24 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
微信小程序 rich-text的使用方法
Aug 04 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
vue实现购物车功能(商品分类)
Apr 20 Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 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函数microtime()用法与说明
2013/12/04 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python多线程用法实例详解
2015/01/15 Python
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
在Django的session中使用User对象的方法
2015/07/23 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
python unittest实现api自动化测试
2018/04/04 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python3将变量输入的简单实例
2020/08/19 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
办公室岗位职责
2014/02/12 职场文书
店面销售职位的职责
2014/03/09 职场文书
警校毕业生自我评价
2014/04/06 职场文书
《鸿门宴》教学反思
2014/04/22 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
单方投资意向书
2015/05/11 职场文书
办公室年度工作总结2015
2015/05/21 职场文书