Javascript 这个reduce函数是使用spread还是rest?

Javascript 这个reduce函数是使用spread还是rest?,javascript,rest,reduce,spread,Javascript,Rest,Reduce,Spread,我在区分传播和休息方面有点困难。有人能解释一下reduce函数返回语句中是否使用了spread或rest吗 这是我不理解的: return [currentValue, ...accumulator] 里面 let str = 'KING'; const reverseStr = str => { return str .split('') .reduce((accumulator, currentValue) => { return [curre

我在区分传播和休息方面有点困难。有人能解释一下reduce函数返回语句中是否使用了spread或rest吗

这是我不理解的:

return [currentValue, ...accumulator]
里面

let str = 'KING';

const reverseStr = str => {
  return str
    .split('')
    .reduce((accumulator, currentValue) => {
      return [currentValue, ...accumulator];
    }, [])
    .join('');
};

Rest语法始终创建或分配变量,例如:

const [itemOne, ...rest] = arr;
//     ^^ created  ^^^^
扩展语法只会产生另一个数组或对象表达式-它不会将任何内容放入变量中。在这里,您将使用扩展语法创建一个由currentValue和累加器的值组成的新数组

就像

return [currentValue, accumulator[0], accumulator[1], accumulator[2] /* ... */];

您正在将累加器的项目分散到要返回的阵列中。

您已经为我清除了周围的迷雾。非常感谢!
return [currentValue, accumulator[0], accumulator[1], accumulator[2] /* ... */];