coffeescript:可以将其重写为更简洁吗?

coffeescript: can this be rewritten to be more concise?

我有一个片段,它打印出数字数组中可整除的最小数字。

numbers = [1, 2, 3, 4, 5, 6]

divisible = (large, small) -> large % small is 0

for i in [1..100]
    div = (divisible i, num for num in numbers)
    if (div.reduce (x, y) -> x and y)
        console.log i
        break

我是 coffeescript 的新手,我想知道是否有更多 concise/cleaner 实现。

我会写这样的东西,但它是关于使用 Array.filter 而不是 Array.reduce,而不是关于使原始代码更小的 coffeescript 技巧。

fn = (numbers) ->
  for i in [1..1000]
    return i if (numbers.filter (el) -> i % el == 0).length is numbers.length

console.log fn([1, 2, 3, 4, 5, 6])

假设数字中没有 0。

gcd = ( a, b )->
    unless b then a else gcd b, a % b

lcm = ( a, b )->
    a * ( b / gcd a, b )

numbers = [ 2, 3, 4, 5, 6, 13, 98751 ]

console.log numbers.reduce lcm