如何将空值推入数组的开头?

时间:2014-10-08 16:44:36

标签: javascript angularjs

我有这个代码来获取数据并将其放入数组中:

    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之前添加一些内容。

4 个答案:

答案 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的。