【发布时间】:2020-11-13 10:33:43
【问题描述】:
我面临一个场景,我需要根据另一个数组的索引和方向(左或右)对数组进行排序。这种排序的关键是我有一组基于数组在水平轴上排序的图表。这种水平排列基于显示历史数据的 Web 服务。同样,有一个选项可以查看以垂直(堆栈)排列的水平图表的实时值。当前的逻辑是通过迭代形成水平图表的数组来创建垂直图表。但问题是,在某些情况下,此迭代涉及另一个导致订单更改的 Web 服务调用。因此水平顺序与垂直顺序不匹配。
这在附图中显示。Array Order Logic。在图表容器中,图表按顺序排列,并根据其方向排列。
图表容器中的排列逻辑:
-
当图表容器为空时
项目 A 方向为 向左
输出:A(L)
项目 B,方向为 左
输出:B(L) A(L) 项目 C 方向 右
输出:B(L) A(L) C(R) 等等。 -
图表列表中的预期排列逻辑
L - 左方向
R- 右方向
场景 1:
如果当前状态是:20 10 30 40 50
状态方向:L L R R R
要添加的新项目:60 L
预期顺序:60 20 10 30 40 50 L L L R R R
场景 2
如果当前状态是:10 20 30 40 50
状态方向:R R R R R
要添加的新项目:60L
预期顺序:60 10 20 30 40 50
排序方向:L R R R R R
场景 3
如果当前状态是:50 40 30 20 10
状态方向:L L L L L
要添加的新项目:60L
预期顺序:60 50 40 30 20 10 订购方向:L L L L L L
场景 4
如果当前状态是:50 40 20 10
状态方向:L L L L
要添加的新项目:30L
预期顺序:50 40 30 20 10
订货方向:L L L L L
场景 5
如果当前状态是:50 40 20 10
状态方向:L L R R
要添加的新项目:30L
预期顺序:50 40 30 20 10
排序方向:L L L L L
我用我的逻辑创建了一个堆栈闪电战,但这并不是在所有场景中都有效。 Please check here。在 stackblitz 中,我在数据文件夹中添加了可能的数据集。
请检查链接并帮助我使此代码适用于所有场景。
提前致谢。欢迎提出任何建议。
【问题讨论】:
-
你只有积极的价值观吗?
-
是的,只有正面的。它实际上是另一个数组的索引
-
@pilchard 恐怕我明白你的意思了。对我来说,这是意料之中的。你能详细说明一下吗
标签: javascript arrays tree logic direction