Я не впевнений у більш ефективному з точки зору big-O, але, звичайно, використання unshift
методу є більш стислим:
var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]
[Редагувати]
Цей орієнтир jsPerf показує, що unshift
він пристойно швидший принаймні в декількох браузерах, незалежно від можливої різної продуктивності великого виходу, якщо ви не в змозі змінити масив на місці. Якщо ви дійсно не можете вимкнути оригінальний масив, ви зробите щось на зразок фрагмента нижче, який, здається, не є значно швидшим, ніж ваше рішення:
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[Редагувати 2]
Для повноти замість прикладу ОП можна використовувати наступну функцію, prependArray(...)
щоб скористатися unshift(...)
методом масиву :
function prepend(value, array) {
var newArray = array.slice();
newArray.unshift(value);
return newArray;
}
var x = [1, 2, 3];
var y = prepend(0, x);
y; // => [0, 1, 2, 3];
x; // => [1, 2, 3];