数据组合图标

LK COMPONENT DOCS · TREE

数据组合

接收数量可变的多棵数据树,先按右键选择的模式分别整理每个输入,再按输入顺序汇入一棵结果树。

功能概览

组件初始提供两个可选输入端。只要最后一个输入端接上线,就会自动在末尾增加一个新的空输入端,因此可继续扩展 D1、D2、D3…;空输入会被跳过。每棵有效输入树先独立执行当前模式,然后才合并到结果中。

默认模式是 Simplify。若整理后的多棵树出现相同路径,数据会按输入端顺序追加到同一结果分支;Combine 类模式会先把输入序号加到路径最前方,从结构上隔开不同输入。

数据组合组件将多个输入树按选定模式独立整理后汇入一棵结果树的逻辑教程图
主过程是“两阶段”:先对每棵输入树独立整理,再统一合并。Combine 示例中,D1 的 {2;0} 变为 {0;2;0},D2 的同路径变为 {1;2;0},输入序号前缀避免两路数据混入同一分支。

适用场景

  • 把数量不固定的多路数据汇总到一个输出端。
  • 合并前统一拍平、嫁接或简化每棵输入树。
  • 用输入序号作为路径前缀,保留每一路数据的来源分区。
  • 把各输入树的分支重新编号后再交给只关心连续路径的下游流程。

工作流程

  1. 连接 D1、D2;需要更多输入时连接当前最后一个空端口,组件会继续增加新的末尾端口。
  2. 右键选择一种组合模式。该模式会同样作用于每一棵有效输入树。
  3. 组件跳过空输入,对其余输入按 D1、D2、D3… 顺序独立整理。
  4. 把整理后的树依次合并;相同路径的数据追加到同一分支,不同路径保持分开。
  5. 从“结果(R)”读取最终数据树,并用数据查看工具核对路径是否符合下游要求。

输入与输出

端口结构匹配与空值行为
Data 1…n(D1…n)可选的通用数据树输入,至少保留一个端口,数量可动态增加或删除。未连接、读取失败或没有分支的输入直接跳过。组件不改变数据对象本身,只改变路径组织。
结果(R)单棵通用数据树。包含所有有效输入经当前模式处理后的数据;同路径按输入端顺序合并。

九种组合模式

模式每棵输入树的处理合并后的关键表现
None保留原路径。不同输入的同路径直接汇合。
Flatten每棵输入树先拍平成一个分支。拍平后的同路径继续汇合,通常形成一个总分支。
Graft每个数据项嫁接为独立分支。不同输入中产生的同路径仍会合并。
Simplify(默认)分别移除各自所有路径共有的重叠前缀。简化后再按路径合并;不同输入的简化结果可能发生新汇合。
Graft→Simplify先把每项嫁接,再分别简化公共前缀。保留逐项分支,同时缩短冗余前缀。
Combine把输入序号 0、1、2… 加到每条原路径最前方。不同输入拥有独立前缀,原本相同的路径不会混合。
Renumber每棵输入树按当前分支顺序改为 {0}、{1}、{2}…。各输入的相同分支序号会合并,原路径语义被舍弃。
Combine→Renumber先加输入序号前缀并合并,再把最终所有分支依次改为 {0}、{1}、{2}…。数据仍按原输入和路径顺序分区,但最终路径只保留连续编号。
Flatten→Combine当前版本没有执行名称所示的拍平与加前缀处理。实际结果等同于 None:保持原结构后合并。若需要该效果,应先在上游拍平,再使用 Combine。

实际示例

D1 与 D2 都包含路径 {2;0}。选择 None 时,两路数据会共同进入结果 {2;0},D1 数据排在 D2 数据之前。选择 Combine 时,D1 变为 {0;2;0},D2 变为 {1;2;0},两路保持分开。选择 Renumber 时,每棵树的第一、第二个分支分别改为 {0}、{1},随后两棵树的 {0} 会汇合、{1} 也会汇合。

常见问题与限制

  • 模式作用于每一棵输入树,而不是先把所有输入混在一起再统一变换;Combine→Renumber 的最终重编号除外。
  • Simplify 是每个输入独立简化,共有前缀不同的两棵树可能得到相同的短路径并在合并时汇合。
  • Renumber 依赖当前分支顺序,会舍弃原路径数字所代表的语义。
  • 当前 Flatten→Combine 与菜单名称不一致,真实行为等同 None;页面已按现状说明,避免误用。
  • 组件不排序、去重或比较数据内容;同路径合并只按输入端和原分支中的现有顺序追加。