Как я могу добавить новые элементы массива в начале массива в Javascript? - PullRequest
1401 голосов
/ 10 ноября 2011

Мне нужно добавить или добавить элементы в начале массива.

Например, если мой массив выглядит следующим образом:

[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), и было бы действительно интересно увидеть лучшие реализации.

Ответы [ 12 ]

3 голосов
/ 07 июня 2018

Если вам нужно непрерывно вставлять элемент в начало массива, быстрее использовать операторы push с последующим вызовом reverse вместо того, чтобы постоянно вызывать unshift.

Контрольный тест: http://jsben.ch/kLIYf

1 голос
/ 28 июня 2018

Используя splice, мы вставляем элемент в массив в начале:

arrName.splice( 0, 0, 'newName1' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...