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

Is this reduce function using spread or rest?

我在区分传播和休息之间有点困难。有人可以向我解释一下 reduce functions return 语句中是否使用了 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  ^^^^

扩展语法只会产生另一个数组(或对象)表达式 - 它不会将任何内容放入变量中。在这里,您使用扩展语法创建一个由 currentValueaccumulator.

的值组成的新数组
return [currentValue, ...accumulator];

就像

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

您正在 accumulator 的项目散布到要返回的数组中。