首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

ruby , each,地图,collect,inject,reject,select

2013-04-07 
ruby , each,map,collect,inject,reject,selectruby , each,map,collect,inject,reject,select的应用一。把

ruby , each,map,collect,inject,reject,select
ruby , each,map,collect,inject,reject,select的应用
一。把一字符串,根据其中的特殊字符 “.“ 分割成数组并去除空的字符串 ,我们得到一个数组 arr

arr = '.666.555.444.333.22.11.'.split('.').reject(&:blank?)


= 。each 的使用

数字:

2.0.0p0 :183 >   a = [1, 2, 3, 4, 5]
 => [1, 2, 3, 4, 5]
2.0.0p0 :184 > a.each {|number| puts number*2}
2
4
6
8
10
 => [1, 2, 3, 4, 5]
2.0.0p0 :185 >

字符:

2.0.0p0 :191 > lower_case = ["hi", "these", "are", "some", "words"]
 => ["hi", "these", "are", "some", "words"]
2.0.0p0 :192 > upper_case = []
 => []
2.0.0p0 :193 > lower_case.each do |word|
2.0.0p0 :194 >     upper_case << word.upcase
2.0.0p0 :195?>   end
 => ["hi", "these", "are", "some", "words"]
2.0.0p0 :196 > puts upper_case
HI
THESE
ARE
SOME
WORDS
 => nil
2.0.0p0 :197 > 


三。collect的使用

2.0.0p0 :197 > lower_case = ["hi", "these", "are", "some", "words"]
 => ["hi", "these", "are", "some", "words"]
2.0.0p0 :198 > upper_case = lower_case.collect { |word| word.upcase }
 => ["HI", "THESE", "ARE", "SOME", "WORDS"]
2.0.0p0 :199 > puts upper_case.inspect
["HI", "THESE", "ARE", "SOME", "WORDS"]
 => nil
2.0.0p0 :200 >

四。map的使用

2.0.0p0 :200 > a = [ "a", "b", "c", "d" ]
 => ["a", "b", "c", "d"]
2.0.0p0 :201 > a.map { |x| x + "!" }
 => ["a!", "b!", "c!", "d!"]
2.0.0p0 :202 > a
 => ["a", "b", "c", "d"]
2.0.0p0 :203 > 


五。reject的使用

2.0.0p0 :210 > (1..30).reject { |n| n % 2 == 0 }
 => [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29] 

2.0.0p0 :217 >   a = [1,2,3,4]
 => [1, 2, 3, 4]
2.0.0p0 :218 > a.reject {|n| n > 2}
 => [1, 2]
2.0.0p0 :219 > 


六.select的使用2.0.0p0 :224 >   a = [1,2,3,4]
 => [1, 2, 3, 4]
2.0.0p0 :225 > a.select {|n| n > 2}
 => [3, 4]
2.0.0p0 :226 >

七.inject的使用

enum.inject(init_value) {|memo,obj|  block}
enum.inject{ |memo,obj| block }

   2.0.0p0 :226 > [1, 2, 3, 4].inject { |result, element| result + element }    => 10

2.0.0p0 :227 > hash = [[:first_name, 'Shane'], [:last_name, 'Harvie']].inject({}) do |result, element|
2.0.0p0 :228 >       result[element.first] = element.last
2.0.0p0 :229?>     result
2.0.0p0 :230?>   end
 => {:first_name=>"Shane", :last_name=>"Harvie"}
2.0.0p0 :231 >


一个相关的网站:http://blog.jayfields.com/2008/03/ruby-inject.html

热点排行