ES6での配列の連結(破壊的)

ES6での配列の連結(破壊的)

ES6での配列の連結(破壊的)

https://qiita.com/kaz2ngt/items/6e08acc537fd77273cff

ES6から配列が展開できるようになったため、上記記事のようにapplyを使って展開する必要がなくなりました。
下記のようにシンプルに記述できます。

実行ファイル

test_es6.js
const a = [0, 1, 2, 3], b = [4, 5, 6, 7], count = 1000000;
console.time();
for (let i = 0; i < count; i++) {
  a.push(...b);
}
console.timeEnd();
test_old.js
const a = [0, 1, 2, 3], b = [4, 5, 6, 7], count = 1000000;
console.time();
for (let i = 0; i < count; i++) {
  Array.prototype.push.apply(a, b);
}
console.timeEnd();

方法

上記のファイルをそれぞれ5回ずつ実行して計測(node v8.9.0)

結果

1回目 2回目 3回目 4回目 5回目 平均
push(...) 77.85ms 80.21ms 74.85ms 73.50ms 78.91ms 77.06ms
Array.prototype.push.apply 75.51ms 77.59ms 76.46ms 79.54ms 81.60ms 78.14ms

一応計測しましたが誤差の範囲です