Это функция уменьшения с использованием спреда или отдыха? - PullRequest
0 голосов
/ 14 марта 2020

У меня небольшие проблемы с различием между спредом и отдыхом. Может ли кто-нибудь объяснить мне, если в операторе return Reduce используются функции spread или rest?

Это то, чего я не понимаю:

return [currentValue, ...accumulator]

внутри

let str = 'KING';

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

1 Ответ

1 голос
/ 14 марта 2020

Синтаксис Rest всегда создает (или присваивает) переменную, например:

const [itemOne, ...rest] = arr;
//     ^^ created  ^^^^

Синтаксис распространения приводит только к другому массиву (или объекту) выражение - он не помещает что-нибудь в переменные. Здесь вы используете синтаксис расширения для создания нового массива, состоящего из currentValue и значений accumulator.

return [currentValue, ...accumulator];

, как

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

Вы распространение элементов accumulator в массив, который возвращается.

...