算法查询树并拼接名称

function getParentLabelByValue(
  array: Array<any>,
  id: string|number,
  fieldNames: FilesName = { value: 'id', label: 'name', children: 'children' }
): Array<string> {
  const stack = [];
  let going = true;
  const walker = (array, id) => {
    array.forEach((item: any) => {
      if (!going) return;
      stack.push(item[fieldNames.label]);
      if (item[fieldNames.value] === id) {
        going = false;
      } else if (item[fieldNames.children]) {
        walker(item[fieldNames.children], id);
      } else {
        stack.pop();
      }
    });
    if (going) stack.pop();
  };
  walker(array, id);
  return stack;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容