javascript - 求助一个递归问题
本文介绍了javascript - 求助一个递归问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
代码代码如下,我需要将data里面的数据递归一遍然后保留层级关系放到newTempData里面,现在不知道如何在每次递归时给newTempData加层级,也就是children
var data = [
{
name: "11111",
children: [
{
name: "22222"
},
{
name: "22222"
},
{
name: "22222",
children: [
{
name: "33333"
}
]
}
]
},
{
name: "1111",
children: [
{
name: "22222",
defaultUrl: "www.baidu.com",
text: "text"
}
]
}
];
var newTempData = [];
function filterData(arr){
for(var i = 0, len = arr.length; i < len; i++){
// 如果有children属性,则对children元素进行递归
if(arr[i].children){
filterData(arr[i].children);
}
newTempData.push(arr[i]);
}
}
filterData(data);
解决方案
应该没错吧?
function filterData(arr){
var result = [];
for(var i = 0, len = arr.length; i < len; i++){
var obj = {
"defaultUrl": arr[i].defaultUrl,
'name': arr[i].name
}
// 如果有children属性,则对children元素进行递归
if(arr[i].children){
obj.children = filterData(arr[i].children);
}
result.push(obj)
}
return result;
}
这篇关于javascript - 求助一个递归问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文