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 特殊字符
Apr 05 Javascript
让你的网站可编辑的实现js代码
Oct 19 Javascript
jquery中.add()的使用分析
Apr 26 Javascript
js完美解决IE6不支持position:fixed的bug
Apr 24 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
Sep 12 Javascript
jquery日历插件datepicker用法分析
Jan 22 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
May 03 Javascript
vue filter 完美时间日期格式的代码
Aug 14 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php实现监听事件
2013/11/06 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
JS获取字符串实际长度(包含汉字)的简单方法
2016/08/11 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
实例详解带参数的 npm script
2019/05/28 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
Vue学习之组件用法实例详解
2020/01/06 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python九九乘法表的实例
2017/09/26 Python
Python实现句子翻译功能
2017/11/14 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
银行求职推荐信范文
2013/11/30 职场文书
《北京的春节》教学反思
2014/04/07 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
HAM-2000摩机图
2021/04/22 无线电
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python