Array :: normalize em CoffeeScript

esta função usará os valores mínimo e máximo encontrados na matriz, para normalizar tudo entre 0 e 1

Array::normalize = ->
return @ unless @length
min
= max = @[0]
for i in @
min
= i if i < min
max
= i if i > max
return @ unless max - min
for i in [0...@length]
@[i] = (@[i] - min) / (max - min)
@

exemplo:

console.log [300,400,150,230,200].normalize()
[ 0.6, 1, 0, 0.32, 0.2 ]