请问向这样的一组数据 如何用 递归或者简洁的方式降维成 下面这样,把他们某个值拼在一起。
[
{
"name": "测试类目1/12321/1",
"parentId": "2/5/125",
"tagType": "category/product/brand"
},
{
"name": "测试类目1/12321/1",
"parentId": "2/5/125",
"tagType": "category/product/brand"
},
{
"name": "测试类目1/12321/1",
"parentId": "2/5/125",
"tagType": "category/product/brand"
},
]
[
{
"id": 5,
"name": "测试类目1",
"description": null,
"parentId": 2,
"sort": 4,
"tagType": "category",
"configTagList": [
{
"id": 6,
"name": "测试产品线1",
"description": null,
"parentId": 5,
"sort": 5,
"tagType": "product",
"configTagList": [
{
"id": 131,
"name": "2",
"description": null,
"parentId": 6,
"sort": 129,
"tagType": "brand",
},
{
"id": 132,
"name": "3",
"description": null,
"parentId": 6,
"sort": 130,
"tagType": "brand",
},
{
"id": 133,
"name": "4",
"description": null,
"parentId": 6,
"sort": 131,
"tagType": "brand",
},
{
"id": 134,
"name": "5",
"description": null,
"parentId": 6,
"sort": 132,
"tagType": "brand",
},
{
"id": 135,
"name": "6",
"description": null,
"parentId": 6,
"sort": 133,
"tagType": "brand",
},
{
"id": 136,
"name": "78",
"description": null,
"parentId": 6,
"sort": 134,
"tagType": "brand",
}
]
},
{
"id": 125,
"name": "12321",
"description": null,
"parentId": 5,
"sort": 123,
"tagType": "product",
"configTagList": [
{
"id": 126,
"name": "123213",
"description": null,
"parentId": 125,
"sort": 124,
"tagType": "brand",
"configTagList": [
{
"id": 137,
"name": "1",
"description": null,
"parentId": 126,
"sort": 135,
"tagType": "model",
},
{
"id": 138,
"name": "2",
"description": null,
"parentId": 126,
"sort": 136,
"tagType": "model",
},
{
"id": 139,
"name": "3",
"description": null,
"parentId": 126,
"sort": 137,
"tagType": "model",
},
{
"id": 140,
"name": "34",
"description": null,
"parentId": 126,
"sort": 138,
"tagType": "model",
}
]
},
{
"id": 127,
"name": "32432",
"description": null,
"parentId": 125,
"sort": 125,
"tagType": "brand",
},
{
"id": 128,
"name": "12",
"description": null,
"parentId": 125,
"sort": 126,
"tagType": "brand",
},
{
"id": 129,
"name": "3",
"description": null,
"parentId": 125,
"sort": 127,
"tagType": "brand",
},
{
"id": 130,
"name": "1",
"description": null,
"parentId": 125,
"sort": 128,
"tagType": "brand",
}
]
}
]
},
{
"id": 21,
"name": "测试类目2",
"description": null,
"parentId": 2,
"sort": 19,
"tagType": "category",
"configTagList": [
{
"id": 22,
"name": "测试产品线1",
"description": null,
"parentId": 21,
"sort": 20,
"tagType": "product",
"configTagList": [
{
"id": 23,
"name": "测试品牌1",
"description": null,
"parentId": 22,
"sort": 21,
"tagType": "brand",
"configTagList": [
{
"id": 24,
"name": "测试型号1",
"description": null,
"parentId": 23,
"sort": 22,
"tagType": "model",
}
]
}
]
}
]
},
{
"id": 5,
"name": "测试类目1",
"description": null,
"parentId": 2,
"sort": 4,
"tagType": "category",
"configTagList": [
{
"id": 6,
"name": "测试产品线1",
"description": null,
"parentId": 5,
"sort": 5,
"tagType": "product",
"configTagList": [
{
"id": 131,
"name": "2",
"description": null,
"parentId": 6,
"sort": 129,
"tagType": "brand",
},
{
"id": 132,
"name": "3",
"description": null,
"parentId": 6,
"sort": 130,
"tagType": "brand",
},
{
"id": 133,
"name": "4",
"description": null,
"parentId": 6,
"sort": 131,
"tagType": "brand",
},
{
"id": 134,
"name": "5",
"description": null,
"parentId": 6,
"sort": 132,
"tagType": "brand",
},
{
"id": 135,
"name": "6",
"description": null,
"parentId": 6,
"sort": 133,
"tagType": "brand",
},
{
"id": 136,
"name": "78",
"description": null,
"parentId": 6,
"sort": 134,
"tagType": "brand",
}
]
}
]
},
{
"id": 21,
"name": "测试类目2",
"description": null,
"parentId": 2,
"sort": 19,
"tagType": "category",
"configTagList": [
{
"id": 22,
"name": "测试产品线1",
"description": null,
"parentId": 21,
"sort": 20,
"tagType": "product",
"configTagList": [
{
"id": 23,
"name": "测试品牌1",
"description": null,
"parentId": 22,
"sort": 21,
"tagType": "brand",
"configTagList": [
{
"id": 24,
"name": "测试型号1",
"description": null,
"parentId": 23,
"sort": 22,
"tagType": "model",
}
]
}
]
}
]
}
]
递归循环。
const newList: NewList[] = [];
let label = ``;
let value = ``;
let tagType = ``;
// let count = 0;
const dataChange = (list: SETTINGS_TAGS_INVITE.Item[]) => {
// count += 1;
list.forEach((i) => {
if (i.configTagList) {
label = `${label}/${i.name}`;
value = `${label}/${i.parentId}`;
tagType = `${label}/${i.tagType}`;
dataChange(i.configTagList);
} else {
label = `${label ? `${label}/` : ''}${i.name}`;
value = `${label ? `${label}/` : ''}${i.parentId}`;
tagType = `${label ? `${label}/` : ''}${i.tagType}`;
newList.push({
label,
value,
tagType,
});
// count = 0;
}
});
return newList;
};
请大佬看看 应该怎么写呢。 这样写不对
using System;
using System.Collections.Generic;
class Program
{
public static void Main(string[] args)
{
List<Data> datas = new List<Data>();
datas.Add(new Data()
{
id = "1",
name = "1",
tagType = "1",
cdata = new List<Data>()
{
new Data() {
id = "2",
name = "2",
tagType = "2",
cdata = new List<Data>()
{
new Data() {
id = "3",
name = "3",
tagType = "3",
cdata = new List<Data>()
{
}
}
}
}
}
});
var datas2 = Get(datas, new ReturnData());
Console.Write(datas2);
}
public static List<ReturnData> Get(List<Data> datas, ReturnData data)
{
List<ReturnData> datas2 = new List<ReturnData>();
foreach (var item in datas)
{
data.id += "/" + item.id;
data.name += "/" + item.name;
data.tagType += "/" + item.tagType;
Get(item.cdata, data);
datas2.Add(data);
}
return datas2;
}
public class Data
{
public string id { get; set; }
public string name { get; set; }
public string tagType { get; set; }
public List<Data> cdata { get; set; }
}
public class ReturnData
{
public string id { get; set; }
public string name { get; set; }
public string tagType { get; set; }
}
}