旭寒ls 已于 2023-05-22 18:15:07 修改 2235 收藏 5 文章标签: json javascript 版权 平时做项目时,我们经常会遇到需要遍历json对象的情况,如果是知道层级的话还好搞一点,如果层级是没办法固定的话就不能用一般的遍历方法了,然后我今天使用到了递归,考虑到以后也可能会经常用到所以记录一下,使用后感觉用好了的话对各种动态操作还是很有帮助的; 首先我们创建一个json对象 var data = { "root": "青青草原", "items": [{ "羊村": [{ "母羊": ["美羊羊", "暖羊羊"] }, { "公羊": [{ "小羊": ["喜羊羊", "懒羊羊", "沸羊羊"] }, { "老羊": ["慢羊羊", "刀羊"], }] } ] }, { "狼堡": ["灰太狼", "红太狼"] }, "泰哥", "蕉太狼" ] } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 我们主要是遍历items里的东西,接下来就是代码了,操作很简单 function traverse(data) { var aa = {}//用来接收操作完的数据 for (key in data) { //这里判断条件,如果是对象类型说明还有下一层, if (typeof(data[key]) == 'object') { //因为还有下一层对象,所以再循环一道先把'键’建好 for (i in data[key]) { //这里进行自调,直到没有了对象层级才会停下来 aa[i] = traverse(data[key][i]) } } else if (typeof(data[key]) == 'string') { aa[data[key]] = null//这里没有下一层所以直接处理后添加进aa } } return aa//这里将处理完的数据返回出去 } //使用方法 var abc=traverse(data)//接收处理好的数据 console.log(abc)//打印出来看看能不能用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 仅供参考,希望大家可以举一反三,都早日成为技术大佬。 ———————————————— 版权声明:本文为CSDN博主「旭寒ls」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_53485256/article/details/127073488 |
|