javascript将普通列表转换为树结构的列表(带children)

在用一些树表插件的时候,这些树表插件都会要求数据的机构是带children属性的对象数组,而后台如果没有转换为这种形式的list,就需要在前端进行转换。

  function listToTreeList(list) { // 将普通列表转换为树结构的列表
    if (!list || !list.length) {
      return []
    }
    let treeListMap = {};
    for (let item of list) {
      treeListMap[item.id] = item
    }
    for (let i = 0; i < list.length; i++) {
      if (list[i].parentId && treeListMap[list[i].parentId]) {
        if (!treeListMap[list[i].parentId].children) {
          treeListMap[list[i].parentId].children = []
        }
        treeListMap[list[i].parentId].children.push(list[i]);
        list.splice(i, 1);
        i--
      }
    }
    return list
  }

封装成一个函数,方便多次调用。

"对不起,我没能变成你喜欢的样子。"

猜你喜欢

转载自www.cnblogs.com/yanggb/p/12558838.html