【发布时间】:2017-01-25 11:15:22
【问题描述】:
我有一个不同步骤的枚举
export enum StepCategory {
START = 0,
POSITION_1 = 1,
TRANSPORT = 2,
RECEIVER = 3,
END = 4,
NO_STEP_MATCH = 5
}
这将在稍后生成一个数组,其中对于每个 Step 我都有一个对象。问题是我不会一次加载所有信息,所以我不能做一个简单的for循环并按时间顺序推送每个项目。我可能是我首先加载第 4 步的值,所以我的数组是:
var array = [{"END" , "POSITIVE"}]
之后我会得到第 2 步的信息,然后我会:
var array = [{"END", "POSITIVE"}, {"TRANSPORT", "POSITIVE"}]
但这没有排序。
我该怎么办?我应该声明一个包含 6 个未定义值的数组
var array = [undefined, undefined, undefined, undefined, undefined, undefined]
这样我在每次更新后不需要任何排序算法,并且可以将值推送到正确的位置。
只是一些小信息:我使用 AngularJS 1、Typescript 和 Lodash
【问题讨论】:
-
为什么你用值声明一个枚举,但在你的对象中使用文字字符串?
-
var array = [{"END", "POSITIVE"}, {"TRANSPORT", "POSITIVE"}] 这行语法正确吗??
-
为什么添加步骤时不能对数组进行排序?它是一个 6 项长度的数组,它不会减慢您的应用程序的速度……它基本上是在需要 O(1) 交换的最佳情况下的插入排序
-
@Eddi 是的,它只是为了演示目的。通常会有一个对象插入各种字段和信息。
标签: javascript html angularjs typescript lodash