前言
在进行业务开发的时候常遇到需要通过数组元素间的关系构造一颗树,功能我想大家都能实现,但代码的简洁性、可读性、性能等都是要考虑的因素。
代码和小栗子
原数组:
/*
* id: 当前元素的唯一标识
* pid: 当前元素的父元素的唯一标识
* otherData: 当前元素的其他数据
*/
let list = [
{
id: 'a',
pid: 'b',
otherData: {
}
},{
id: 'b',
pid: null,
otherData: {
}
},{
id: 'c',
pid: 'a',
otherData: {
}
},{
id: 'd',
pid: 'a',
otherData: {
}
},{
id: 'e',
pid: 'b',
otherData: {
}