📖 功能概述
对树形数据执行特殊的降级操作——将每条路径的前面所有层级索引全部移除,仅保留最后一级索引作为新路径。
输入数据默认经过 Simplify 预处理。
与「数据降级」组件的区别:「数据降级」根据偏移值灵活控制保留前 N 级或后 N 级;
而「数据降到最后一级」固定保留全部路径中的最后一级索引,相当于「数据降级」中偏移值 O = -1 的固定版本。
🧠 核心算法:提取最后一级
对每条路径:
计算原路径深度 N,目的深度 destination = N - 1(最后一级)
情况 1:路径深度 ≤ destination(即仅单级)
新路径 = {P[0]} — 以第一个索引作为一级路径(兜底)
情况 2:路径深度 > destination(多级)
新路径 = P[destination] = P[最后一级] — 仅保留最后一级索引
示例:
输入路径 {0;2;5}(N=3),destination = 2(最后一级索引=5)
N > destination → 新路径 = P[2] = {5}
输入路径 {5}(N=1),destination = 0(最后一级索引=5)
N ≤ destination → 兜底,新路径 = {P[0]} = {5}
📋 使用示例
输入树(Simplify 后):
{0;0;0} → [A,B]
{0;0;1} → [C]
{0;0;2} → [D,E]
{0;1;0} → [F]
{0;2;0} → [G,H]
运算(保留最后一级):
{0;0;0} → 最后一级 = 0 → {0} ← [A,B]
{0;0;1} → 最后一级 = 1 → {1} ← [C]
{0;0;2} → 最后一级 = 2 → {2} ← [D,E]
{0;1;0} → 最后一级 = 0 → {0} ← [F](合并到已有分支)
{0;2;0} → 最后一级 = 0 → {0} ← [G,H](合并到已有分支)
输出:
{0} → [A,B,F,G,H]
{1} → [C]
{2} → [D,E]