将数组形式字符串组成树结构

需求:将数组形式字符串组成树结构
问题相关代
数据代码
let list = [
      {
        TagCodePath: "1234|5678|55555",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|主角定位|渣男渣女",
      },
      {
        TagCodePath: "1234|5678",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|古装",
      },

      {
        TagCodePath: "1234|5678|3333",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|主角定位|富二代",
      },
      {
        TagCodePath: "1234|5678|3333",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|风格定位|励志",
      },
      {
        TagCodePath: "1234|5678",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|年代",
      },
      {
        TagCodePath: "1234|5678|3333|8789|7676",
        contentTagSource: "dsg",
        TagNamePath: "电视剧|主角定位|富二代|复仇|赘婿",
      },
    ];

这是后台返回的数据,现在需要将其转换成树结构来渲染,其中层级不定,给出的所有数据均是子项,单可以根据子项拿到对应父项,其中TagCodePath可以视为id, TagNamePath中 ‘|’ 分割的最后一项是我要展示的label, 用 '|' 再向上一级即为他的父级。

现我将数据组成如下的数组形式,然后准备递归将数据做成树的形式来渲染,但递归条件写的不清楚,导致无线循环,望指教怎么将数据组成树形结构

img

可以看下我的这个帖子中的转换方法看看能不能行。
https://blog.csdn.net/seeeeeeeeeee/article/details/119458019

你这个 以哪个属性为 父级 ?