常用的前端处理后端数据
// =============对象数组转换================
{firstName: ‘Andy’} => [{name: ‘firstName’, value: ‘Andy’}]
1 | let obj = { firstName: "Andy", lastName: "Wong" }; |
[ { label: ‘男’, value: 0 }, { label: ‘女’, value: 1 } ]
互转
{0: ‘男’, 1:’女’}
1
2
3
4
5
6 let list = [
{ label: "男", value: 0 },
{ label: "女", value: 1 },
];
let obj = { 0: "男", 1: "女" };
1 | // =======forEach方式======= |
// =============树转数组对象===============1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19var tree = [
{
id: "-1",
pid: "",
name: "首层",
item: [
{
id: "1",
pid: "-1",
name: "1层1",
item: [
{ id: "3", pid: "1", name: "1层1-1"},
{ id: "4", pid: "1", name: "1层1-2"},
],
},
{ id: "2", pid: "-1", name: "1层2" },
],
},
];
1 | var list = [ |
//=============树转数组对象===============
1 | function tree2List(tree, list = []) { |
//================reduce方法实现====================1
2
3
4
5
6
7
8
9function tree2List(tree) {
return tree.reduce((res, ele)=>{
const {item, ...props} = ele
return res.concat(props, item && item.length?tree2List(item):[])
},[])
}
var result = tree2List(tree);
console.log(result)
//=============数组对象转树===============1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19var tree = []
function list2Tree(list, tree = []) {
let obj = {}
for(let ele of list) {
let newEle = obj[ele.id] = {...ele,item:[]}
console.log(newEle)
if(obj[ele.pid]){
let parent = obj[ele.pid]
console.log("======")
console.log(parent)
parent.item.push(newEle)
} else {
tree.push(newEle)
}
}
console.log(tree)
return tree
}
1 | function list2Tree(list,tree=[]) { |