javascript - sort - js array remove
如何在JavaScript中的數組的開頭添加新的數組元素? (4)
我需要在數組的開始處添加或預先添加元素。
例如,如果我的數組如下所示:
[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)
,看到更好的實現將會非常有趣。
使用ES6,使用擴展運算符...
:
DEMO
var arr = [23, 45, 12, 67];
arr = [34, ...arr]; // RESULT : [34,23, 45, 12, 67]
console.log(arr)
快速備忘錄:
shift / unshift和push / pop這兩個術語可能有點令人困惑,至少對那些不熟悉C語言編程的人來說可能有點混亂。
如果您不熟悉這個術語,可以快速翻譯備用術語,這可能會更容易記住:
* array_unshift() - (aka Prepend ;; InsertBefore ;; InsertAtBegin )
* array_shift() - (aka UnPrepend ;; RemoveBefore ;; RemoveFromBegin )
* array_push() - (aka Append ;; InsertAfter ;; InsertAtEnd )
* array_pop() - (aka UnAppend ;; RemoveAfter ;; RemoveFromEnd )
使用不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 / pop元素的語言都具有不移位/移位(有時稱為push_front
/ pop_front
)元素的能力,您不應該自己去實現這些元素。
另一種通過concat
做到這一點的方法
var arr = [1, 2, 3, 4, 5, 6, 7];
console.log([0].concat(arr));
concat
和unshift
之間的區別在於concat
返回一個新的數組。 他們之間的表現可以在here找到。
function fn_unshift() {
arr.unshift(0);
return arr;
}
function fn_concat_init() {
return [0].concat(arr)
}
這是測試結果