我有这个代码来获取数据并将其放入数组中:
this.$httpGetTest(this.test.testId)
.success(function (data: ITestQuestion[]) {
self.test.qs = data;
});
它以self.test.qs [0]开始工作并填充数组。
然而,我的代码多次引用此数组(其中包含问题列表1 ... x)
我必须始终记得从问题编号中减去1,因此我的代码看起来并不清晰。有没有办法让我可以在数组中的所有其他条目之前放置一个条目,以便:
self.test.qs[0] is null
self.test.qs[1] references the first real data for question number 1.
理想情况下,我希望在self.test.qs =
之后和data
之前添加一些内容。
答案 0 :(得分:1)
您需要使用Splice(),它的工作方式如下:
splice()方法更改数组的内容,在删除旧元素时添加新元素。
所以试试:
self.test.qs.splice(0, 0, null);
这里中间参数0是设置不从数组中删除的元素,因此它将在零处插入null并移动所有其他元素。
以下是演示:
var arr = [];
arr[0] = "Hello";
arr[1] = "Friend";
alert(arr.join());
arr.splice(1,0,"my");
alert(arr.join());

答案 1 :(得分:1)
通过unshift
推送数组开头的值self.test.qs.unshift(null);
答案 2 :(得分:0)
你可以从一个带有空值的数组开始,然后将questions数组连接到它。
var arr = [null];
arr = arr.concat(data);
答案 3 :(得分:0)
您可以执行以下操作:
x = [null].concat([1, 2, 3]);
尽管做出类似的事情没有任何问题:
x[index-1]
我更倾向于诚实,否则有人可能会认为返回的索引值是基于0的。