为了保证的可读性,本文采用意译而非直译。
本文主要讲解怎么提高展开运算的性能,在此之前先简单说说展开运算在数组中的工作原理。
展开运算符或三个点,接受一个数组数组或通常是可迭代的[… arrayOrIterable]并将数组元素分解,并使用这些分解部分构造一个新数组。
展开运算符可以放在数组中的任何位置:
const numbers = [1, 2, 3];
[0, ...numbers]; // => [0, 1, 2, 3]
[0, ...numbers, 4]; // => [0, 1, 2, 3, 4]
[...numbers, 4]; // => [1, 2, 3, 4]
复制代码
现在有一个有趣的问题,展开运算符在数组中的位置是否可以提高性能?让咱们来look look。
- 附加到头部和尾部函数
在开始对比性能之前,先定义两个函数。
第一个函数:appendToTail():
function appendToTail(item, array) {
return [...array, item];
}
const numbers = [1, 2, 3];
appendToTail(10, numbers); // => [1, 2, 3, 10]
复制代码
appendToTail()函数功能主要是将 item插入数组的末尾。
第二个函数 appendToHead():
function appendToHead(item, array) {
return [item, ...array];
}
const numbers = [1, 2, 3];
appendToHead(10, numbers); // => [10