ruby - 计算 Ruby 数组中的 Fixnums

标签 ruby arrays

我有一个带有任意数量参数的函数。我的函数如下所示:

sum(n, *rest)

我如何遍历数组 rest 以便检查参数是否为 Fixnum,如果是则求和,否则不执行任何操作?例如:

sum(5,1,2,k,D,3)
# => 6

最佳答案

做如下:

ary = rest.grep(Fixnum)
# return the summation of the array elements, if array is not empty
# 0, when array is empty or contains only one element as `0`.
ary.reduce(0,:+) 

#reducegrep .

例子:

ary = [1,"2",{1 => 2 },8]
ary.grep(Fixnum).inject(0,:+) # => 9
ary = ["2",{1 => 2 },(1..2)]
ary.grep(Fixnum).inject(0,:+) # => 0

# counting the how many Fixnums are there
ary = [1,"2",{1 => 2 },8]
ary.grep(Fixnum).size # => 2

关于ruby - 计算 Ruby 数组中的 Fixnums,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22170017/

相关文章:

javascript - 如何使用 async.js 映射数组?

python - 从字符串中提取 float 以创建多个/多维数组来操作数据

html - 如果选中复选框,如何更改索引中的字体颜色?

c# - 在多维 System.Collection.IList 中快速查找

javascript - TypeScript for 循环中数组中未定义的项目

arrays - 带有 JSON 数据并访问数组和对象的 Handlebars 模板

ruby-on-rails - 使用 ruby​​/rails 将文件上传到网站

Ruby:无目标 'case' ,与 'if' 相比

ruby-on-rails - Assets 管道 : Trouble on deploying my Rails 3. 1 个带有 Capistrano 的应用程序

ruby - 如何在不删除对外部 API 的访问的情况下为 ruby​​ 设置虚拟环境或沙箱?