Ruby 中的inject方法

Ruby inject

1 求和

inject 方法的两种用法

enum.inject(init_value){|result,element| block}
enum.inject{|result,element| block}

第一种,result 以init_value为初始值
第二种,result以element里的第一个元素为初始值。

[1,2,3,4].inject{|result,element| result+element} #=>10
[1,2,3,4].inject(0){|result,element| result+element} #=>10
[1,2,3,4].inject(1){|result,element| result+element} #=>11

2.将一个数组中的元素复制到另一个数组中

方法一:

arr = []
arr2 = [1,2,3,4,5,6,7]
arr2.each do |i|
    arr<<i
end
p arr

方法二:

arr = arr2.inject([]) do |arr1,i|
    arr1<< i
end
p arr

2.选择出数组中的偶数

b = [1, 2, 3, 4, 5, 6]
array = b.inject([]) do |result, element|
    if element % 2 == 0  
        result << element.to_s
     else
       result
     end 
end
p array
array1= [1, 2, 3, 4, 5, 6].inject([]) do |result, element|  
  result << element.to_s if element % 2 == 0  
  result  
end  
p array1

3.将数组转换成hash

a = [[:name1, 'Shane'], [:name2, 'Harvie'],[:name3, 'Harvie']]
hash = a.inject({}) do |result, element|  
  result[element.first] = element.last  
  result  
end
p hash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值