Оператор ...
( spread ) работает, возвращая каждое значение из индекса 0
в индекс length-1
:
В качестве примера:
[...'18'] // returns ['1', '8']
, который будет таким же, как:
['18'[0], '18'[1]]
Теперь, чтобы получить массив от 1
до 18
, вы можете сделать это:
[...Array(19).keys()].slice(1)
Или это с картой:
[...Array(18)].map(_=>i++,i=1)
Надеюсь, что это поможет.