#遅くなる時
自分用に作った関数のテスト中に、for
で10000回ほどunshift
を用いて処理した時、明らかに重くなった。
#コード
case2のように別の配列を用意してpush
で追加してから反転させてunshift
すれば
push
と同程度の処理時間で済む。
大量に処理する時以外は普通にunshift
を使ったほうが良いと思う。
const n = 10000;
//【case1】
//直接unshift
console.time('unshift');
const base1 = Array(10).fill(0);
for (let i=0; i<n; i++) {
base1.unshift(i);
}
console.timeEnd('unshift');
//console.log(base1);
//【case2】
//空の配列にpushでまとめた後に反転させてunshift
console.time('push');
const base2 = Array(10).fill(0);
const arr = [];
for (let i=0; i<n; i++) {
arr.push(i);
}
base2.unshift(...arr.reverse());
console.timeEnd('push');
//console.log(base2);