Замена for и let

В arrow functions

Покажу на примере 1й функции, как заменить цикл for () и инициализацию переменных в стрелочных функциях:

Пример функции вычисления n-го числа Фибоначи с применением деструкторизации:

function fib(n){
let[ x, y ] = [ 0, 1 ];
for (let i=0; i<n; i++) { [ x, y ] = [ y, x+y ] };
return x
}

Превращаем этот алгоритм в стрелочную функцию. Цикл можно заменить следующим образом:

for (let i=0; i<n; i++) { ...code... }
// на
[...Array(n)].forEach(i=> ...code...)

Локальные переменные объявляем в виде аргументов с дефолтными значениями. В итоге получаем функцию:

const fib = (n, x=0, y=1) => (
[...Array(n)].forEach(i => [ x, y ] = [ y, x+y ]), x
)

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade