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
🙂