如何在Javascript数组的开头添加新的数组元素?
我需要在数组的开头添加或添加元素。
例如,如果我的数组如下所示:
[23, 45, 12, 67]
我的AJAX调用的响应是34
,我希望更新后的数组如下所示:
[34, 23, 45, 12, 67]
目前,我正打算这样做:
var newArray = [];newArray.push(response);
for (var i = 0; i < theArray.length; i++) {
newArray.push(theArray[i]);
}
theArray = newArray;
delete newArray;
有什么更好的方法吗?Javascript是否具有执行此操作的任何内置功能?
我的方法很复杂,O(n)
看到更好的实现将真的很有趣。
回答:
使用unshift
。就像一样push
,除了它在数组的开头而不是结尾添加元素。
unshift
//push
-将元素添加到数组的开头/结尾shift
//pop
-删除并返回数组的第一个/最后一个元素
一个简单的图…
unshift -> array <- push shift <- array -> pop
和图表:
add remove start end push X X
pop X X
unshift X X
shift X X
查看MDN阵列文档。实际上,每种能够从数组中推入/弹出元素的语言都将具有取消/移入(有时称为push_front
/
pop_front
)元素的能力,您永远不必自己实现这些元素。
如注释中所指出的那样,如果要避免更改原始数组,可以使用concat
将两个或更多数组连接在一起的。您可以使用它在功能上将单个元素推到现有数组的前面或后面;为此,您需要将新元素转换为单个元素数组:
const array = [ 3, 2, 1 ]const newFirstElement = 4
const newArray = [newFirstElement].concat(array) // [ 4, 3, 2, 1 ]
concat
也可以附加项目。的参数concat
可以是任何类型;如果它们还不是数组,则将它们隐式包装在单元素数组中:
const array = [ 3, 2, 1 ]const newLastElement = 0
// Both of these lines are equivalent:
const newArray1 = array.concat(newLastElement) // [ 3, 2, 1, 0 ]
const newArray2 = array.concat([newLastElement]) // [ 3, 2, 1, 0 ]
以上是 如何在Javascript数组的开头添加新的数组元素? 的全部内容, 来源链接: utcz.com/qa/409507.html