Saya tidak yakin tentang lebih efisien dalam hal big-O tetapi tentu saja menggunakan unshift
metode ini lebih ringkas:
var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]
[Sunting]
Benchmark jsPerf ini menunjukkan bahwa unshift
lebih cepat dalam setidaknya beberapa browser, terlepas dari kinerja O besar yang mungkin berbeda jika Anda ok dengan memodifikasi array di tempat. Jika Anda benar-benar tidak dapat mengubah array asli maka Anda akan melakukan sesuatu seperti cuplikan di bawah ini, yang sepertinya tidak jauh lebih cepat daripada solusi Anda:
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[Sunting 2]
Untuk kelengkapan, fungsi berikut dapat digunakan sebagai ganti contoh OP prependArray(...)
untuk memanfaatkan unshift(...)
metode Array :
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];