首页 > 代码库 > 数组递归遍历有个问题
数组递归遍历有个问题
[
{
"id": 35,
"code": "110100",
"name": "北京市",
"type": 1,
"regions": [
{
"id": 373,
"code": "110101",
"name": "东城区",
"type": 2,
"regions": [],
"latitude": 0,
"longitude": 0
},
{
"id": 373,
"code": "110101",
"name": "西城区",
"type": 2,
"regions": [],
"latitude": 0,
"longitude": 0
}],
"latitude": 0,
"longitude": 0
},
{
"id": 36,
"code": "120100",
"name": "天津市",
"type": 1,
"regions": [
{
"id": 389,
"code": "120101",
"name": "和平区",
"type": 2,
"regions": [],
"latitude": 0,
"longitude": 0
}],
"latitude": 0,
"longitude": 0
},
{
"id": 37,
"code": "130100",
"name": "石家庄市",
"type": 1,
"regions": [
{
"id": 405,
"code": "130102",
"name": "长安区",
"type": 2,
"regions": [],
"latitude": 0,
"longitude": 0
}],
"latitude": 0,
"longitude": 0
}]
有一个这样的数组,我不知道怎么递归遍历返回出成为这样的数组形式
[{
text:‘北京市‘,
value:‘北京市‘,
children:[
{
text:‘东城区‘,
value:‘东城区‘
}
]
},{
text:‘北京市‘,
value:‘北京市‘,
children:[
{
text:‘东城区‘,
value:‘东城区‘
},
{
text:‘西城区‘,
value:‘西城区‘
}
]
}]
?请问一下怎么写这个递归的函数?
var newarr = [];
for(var i=0;i<arr.length;i++){
newarr[i] = {
text : arr[i].name,
value : arr[i].name,
childern : [{
text : arr[i].regions[0].name,
value : arr[i].regions[0].name
}]
};
}
console.log(newarr);
整理一下:
function abc(arr) {
var arr1 = [];
for(var i = 0, l = arr.length; i < l; i++) {
arr1[i] = {
text: arr[i].name,
value: arr[i].name,
children: [{
text: arr[i].regions[0].name,
value: arr[i].regions[0].name
}]
}
}
return arr1;
}
var a = abc(arr);
console.log(a)
这是我在:https://segmentfault.com/q/1010000008641909?_ea=1702980上看到的一个问题
数组递归遍历有个问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。