我有一个持续需要更新数组的数据流。数组本身总是比传入的流大。这意味着我必须将缓冲区连接到数组并移动所有内容。但是,连接速度很慢,所以我想知道是否有快速的方法可以做到这一点?
例子:
var array = [1,2,3,4,5,6];
var stream = [7,8,9];
array = magicalFunction(array,stream); // outputs [4,5,6,7,8,9]
数组函数用于使用 ChartJS 绘图。这是一个滚动图,因此当数据进来时(它以 block 的形式进来)我必须通过移动整个数据集来更新图表。
最佳答案
你可以使用 spread syntax ...
.但如果这比 concat 更快......?
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);
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);
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);
关于javascript - 在 ES6 中推送和移动数组的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46093248/