Похоже, что единственная разновидность, которой нет в этом довольно полном списке ответов, - это модель с генератором; чтобы исправить это:
const gen = N => [...(function*(){let i=0;while(i<N)yield i++})()]
, который можно использовать таким образом:
gen(4) // [0,1,2,3]
Самое приятное в этом то, что вам не нужно просто увеличивать ... Чтобы черпать вдохновение из ответа @ igor-shubin, вы можете очень легко создать массив случайных чисел:
const gen = N => [...(function*(){let i=0;
while(i++<N) yield Math.random()
})()]
И вместо чего-то длинного эксплуатационно дорого, как:
const slow = N => new Array(N).join().split(',').map((e,i)=>i*5)
// [0,5,10,15,...]
вы могли бы вместо этого сделать:
const fast = N => [...(function*(){let i=0;while(i++<N)yield i*5})()]