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<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_selseresultend
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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
