在ES6中快速推送和移位阵列的方法

Ort*_*x92 1 javascript arrays performance ecmascript-6

我有一个不断需要更新数组的数据流.数组本身总是比正在进入的流大.这意味着我必须将缓冲区连接到数组并移动所有内容.但是,连接速度很慢所以我想知道是否有一种快速的方法可以做到这一点?

例:

var array = [1,2,3,4,5,6];
var stream = [7,8,9];
array = magicalFunction(array,stream); // outputs [4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

数组函数用于使用ChartJS进行绘图.这是一个滚动的情节,因为数据进入(它以块为单位)我必须通过移动整个数据集来更新图表.

Nin*_*olz 7

您可以使用扩展语法....但如果那比连续快......?

var magicalFunction = (a, s) => [...a.slice(s.length - a.length), ...s],
    array = [1, 2, 3, 4, 5, 6],
    stream = [7, 8, 9];

array = magicalFunction(array,stream);

console.log(array);
Run Code Online (Sandbox Code Playgroud)

Array.concat

var magicalFunction = (a, s) => a.slice(s.length - a.length).concat(s);
    array = [1, 2, 3, 4, 5, 6],
    stream = [7, 8, 9];

array = magicalFunction(array,stream);

console.log(array);
Run Code Online (Sandbox Code Playgroud)

Array.unshift

var magicalFunction = (a, s) => (s.unshift(...a.slice(s.length - a.length)), s);
    array = [1, 2, 3, 4, 5, 6],
    stream = [7, 8, 9];

array = magicalFunction(array,stream);

console.log(array);
Run Code Online (Sandbox Code Playgroud)