Ruby 中的inject方法

来源:互联网 发布:最新淘宝灰色项目收入 编辑:程序博客网 时间:2024/04/29 06:20

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<<iendp arr

方法二:

arr = arr2.inject([]) do |arr1,i|    arr1<< iendp 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 endp 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  endp hash
0 0
原创粉丝点击