JavaScript在数组开头添加元素

706

我有一个对象数组,我想在数组开头推入一个元素。

这是我的代码:

var TheArray = TheObjects.Array;
TheArray.push(TheNewObject);

它在末尾添加了TheNewObject。我需要创建一个新数组,将TheNewObject添加到其中,然后循环遍历TheArray并将每个元素添加到该数组中吗?

3个回答

1269

使用unshift,通过将参数添加到数组开头改变现有数组:

TheArray.unshift(TheNewObject);

172

使用.unshift()将元素添加到数组的开头。

TheArray.unshift(TheNewObject);

请参考MDN关于unshift()文档, 关于其他数组方法的文档请点击此处.

另外提醒一下,就像末尾有.push().pop()方法一样,开头也有.shift().unshift()方法。


70

如果需要使用一个不太好看的版本的 unshift,可以使用 splice

TheArray.splice(0, 0, TheNewObject);

5
为什么你要那样做? - Елин Й.
73
作为程序员,拥有多种选择是非常重要的。有时候在特定情况下,简单的解决方案并不总是奏效。splice是从数组中删除元素的好方法,所以了解如何使用它进行插入是很有用的。 - Cacoon
8
就易读性而言,splice对我来说更加自我解释。即使我没有删除数组中的内容,"unshift"听起来像是在做这样的事情。"splice"听起来更像是在合并两个东西。 - chris.nesbit1
10
性能如何? - Pwnstar
1
@Cacoon:我能想到的“splice”在这种情况下唯一的用途是,如果程序在运行时决定是否将数组插入到开头。例如, - user749127
1
让spliceIndex等于insert为真时的0,否则为-1; TheArray.splice(spliceIndex, 0, TheNewObject) - user749127

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接