封装一个函数
让数组变成下面这样
如何转换
求解
希望大家可以给我解决
最好是代码
谢谢大噶。
题主要的代码如下
<script>
function FlatToNested(data, opt) {//树数据源扁平结构转嵌套
opt = opt || {};
var idFiled = opt.idFiled || 'id';
var textFiled = opt.textFiled || 'name';
var parentField = opt.parentField || 'pid';
var i, l, treeData = [], tmpMap = [];
for (i = 0, l = data.length; i < l; i++) tmpMap[data[i][idFiled]] = data[i];
for (i = 0, l = data.length; i < l; i++) {
if (tmpMap[data[i][parentField]] && data[i][idFiled] != data[i][parentField]) {
if (!tmpMap[data[i][parentField]]['children'])
tmpMap[data[i][parentField]]['children'] = [];
tmpMap[data[i][parentField]]['children'].push(data[i]);
} else {
treeData.push(data[i]);
}
}
return treeData;
}
let arr = [
{ id: 1, pid: 0, name: '1' },
{ id: 2, pid: 0, name: '2' },
{ id: 3, pid: 1, name: '3' },
{ id: 4, pid: 3, name: '4' }
];
var ndata = FlatToNested(arr);
console.log(JSON.stringify(ndata,null,2))
</script>
帮助麻烦点下【采纳该答案】