旭寒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
联系客服