Big-O açısından daha verimli olduğundan emin değilim ama unshift
yöntemi kullanmak kesinlikle daha özlü:
var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]
[Düzenle]
Bu jsPerf kriter gösterileri unshift
bakılmaksızın muhtemelen farklı büyük-O performansı, terbiyeli hızlı tarayıcıların en az bir çift olduğu takdirde sen yerinde diziyi değiştirmeden ile ok. Orijinal diziyi gerçekten değiştiremezseniz, aşağıdaki snippet gibi bir şey yaparsınız, bu da çözümünüzden oldukça hızlı görünmüyor:
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[Düzenle 2]
Tamlık prependArray(...)
için, Array unshift(...)
yönteminden yararlanmak için OP örneği yerine aşağıdaki işlev kullanılabilir :
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];