var list =[
{ st_no:'111', st_type:'333', st_zbgna:'222', st_zbgno:'1' },
{ st_no:'1112', st_type:'333', st_zbgna:'222', st_zbgno:'1' },
{ st_no:'111', st_type:'3323', st_zbgna:'222', st_zbgno:'1' },
{ st_no:'111', st_type:'333', st_zbgna:'222', st_zbgno:'1' },
{ st_no:'15112', st_type:'333', st_zbgna:'2322', st_zbgno:'1' },
{ st_no:'111', st_type:'333', st_zbgna:'222', st_zbgno:'1' },
];
// 转换为三层级树状对象数组
var tree = [];
list.forEach(function(item) {
var level1 = tree.find(function(node) {
return node.st_zbgno === item.st_zbgno;
});
if (!level1) {
level1 = {
st_zbgno: item.st_zbgno,
children: []
};
tree.push(level1);
}
var level2 = level1.children.find(function(node) {
return node.st_no === item.st_no;
});
if (!level2) {
level2 = {
st_no: item.st_no,
children: []
};
level1.children.push(level2);
}
var level3 = {
st_zbgna: item.st_zbgna,
st_type: item.st_type
};
level2.children.push(level3);
});
// 输出结果
console.log(tree);