如何在 Elixir 中按模数过滤列表
How to filter a list by modulus in Elixir
假设我有一个数组
arr=[1,2,14,1,27]
我想创建一个名为 arr1 的新数组,它将存储 arr 的所有值,当您采用 it.So、
的 modulus 时,这些值将等于 1
arr2=[1,14,1,27]
因为 1 mod 13、14 mod 13 和 27 mod 13 都等于 1.
使用 filter
和 modulo
rem(x, 13) == 1
arr=[1,2,14,1,27]
arr2 = Enum.filter(arr, fn x -> rem(x, 13) == 1 end)
IO.inspect arr
IO.inspect arr2
输出:
[1, 2, 14, 1, 27]
[1, 14, 1, 27]
这种任务最好用for/1
理解来完成,比Enum.filter/2
.
更强大waaaaay
for i <- [1, 2, 14, 1, 27], rem(i, 13) == 1, do: i
#⇒ [1, 14, 1, 27]
假设我有一个数组
arr=[1,2,14,1,27]
我想创建一个名为 arr1 的新数组,它将存储 arr 的所有值,当您采用 it.So、
的 modulus 时,这些值将等于 1arr2=[1,14,1,27]
因为 1 mod 13、14 mod 13 和 27 mod 13 都等于 1.
使用 filter
和 modulo
rem(x, 13) == 1
arr=[1,2,14,1,27]
arr2 = Enum.filter(arr, fn x -> rem(x, 13) == 1 end)
IO.inspect arr
IO.inspect arr2
输出:
[1, 2, 14, 1, 27]
[1, 14, 1, 27]
这种任务最好用for/1
理解来完成,比Enum.filter/2
.
for i <- [1, 2, 14, 1, 27], rem(i, 13) == 1, do: i
#⇒ [1, 14, 1, 27]