Ich habe gerade einen Benchmark mit 4 Algorithmen in Chrome durchgeführt:
an Ort und Stelle:
// 1) splice method
{
let x = [8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44];
const y = [5, 6, 99, 5, 3, 4];
x.splice(0, 0, ...y); // 87'426 ops/s (but big variation of 35%)
// x is [5, 6, 99, 5, 3, 4, 8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44]
}
// 2) unshift method
{
let x = [8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44];
const y = [5, 6, 99, 5, 3, 4];
x.unshift(...y); // 69'471 ops/s
// x is [5, 6, 99, 5, 3, 4, 8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44]
}
Kopie:
// 3) spread operator
{
const x = [8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44];
const y = [5, 6, 99, 5, 3, 4];
const z = [...y, ...x]; // 17'118 ops/s
// z is [5, 6, 99, 5, 3, 4, 8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44]
}
// 4) concat method
{
const x = [8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44];
const y = [5, 6, 99, 5, 3, 4];
const z = y.concat(x); // 6'286 ops/s
// z is [5, 6, 99, 5, 3, 4, 8, 4, 1, 4, 124, 1, 14, 11, 9, 100, 6, 44]
}
Zusammenfassung: Wenn Sie an Ort und Stelle vorspannen wollen, sind sowohl unshift als auch splice gut, und wenn Sie eine Kopie wollen, dann scheint der Spread-Operator die beste Wahl zu sein ... zumindest auf Chrome.