Array :: amostra em CoffeeScript

Fiz este pequeno one-liner para depurar matrizes insanamente grandes no console:

Array::sample = (size=1) -> if @length then (@[i] for i in [0...@length] by Math.round @length / size) else @

Uso:

[0..1000000].sample 10

Irá imprimir:

[ 
0,
100000,
200000,
300000,
400000,
500000,
600000,
700000,
800000,
900000,
1000000
]

Aviso: não resolvi o seguinte caso:

[0..10].sample 100

FATAL ERROR: JS Allocation falhou – processo sem memória

🙂