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 相关文章推荐
浅析jQuery的链式调用之each函数
Dec 03 Javascript
如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)
Jul 09 Javascript
javascript学习笔记--数字格式类型
May 22 Javascript
jquery中获取元素里某一特定子元素的代码
Dec 02 Javascript
第一次接触JS require.js模块化工具
Apr 17 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
Aug 11 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
Angular4学习笔记之准备和环境搭建项目
Aug 01 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
JavaScript获取URL参数的方法分享
Apr 07 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动态创建Flash动画
2006/10/09 PHP
我的论坛源代码(八)
2006/10/09 PHP
PHP 之Section与Cookie使用总结
2012/09/14 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
vue中监听返回键问题
2019/08/28 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
python 快速排序代码
2009/11/23 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
药品销售内勤岗位职责
2015/04/13 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL