Appearance
排序
ZAff 导出了 sortAff() 和 sortTimingGroup() 两个方法,分别用于对 Aff 和 TimingGroup 内的 Note 进行排序。按照以下方式导入:
ts
import { sortAff, sortTimingGroup } from "zaff";基本用法
直接传入 Aff 或 TimingGroup 对象,内部的 Note 将默认按照时间顺序从小到大排列:
ts
sortAff(aff);
sortTimingGroup(tg);如果想要按照 Note 类型排序,可在第二个参数中传入一个配置项,例如:
ts
sortAff(aff, {
mode: "kind"
});此时,内部的 Note 将按照各自的类型,默认以 timing -> tap -> flick -> hold -> arc -> camera -> scenecontrol 的顺序进行排列。
当然,我们可以自定义这条排序规则,使它按照我们所规定的顺序排列:
ts
sortAff(aff, {
mode: "kind",
kinds: ["arc", "camera", "flick", "hold", "scenecontrol", "tap", "timing"]
});TIP
ZAff 会根据 mode 字段的值优先选择排列方式。当 mode: "time" 时,若两 Note 时间一致,则会再根据 Note 类型进行排序;反之亦然。
配置对象上还有一 desc 字段,能够指定整体的排序方向,默认为 false,即升序。
实际上,它仅仅是在排序的末尾调用了数组的 reverse() 方法:
ts
desc && tg.reverse();