一。把一字符串,根据其中的特殊字符 “.“ 分割成数组并去除空的字符串 ,我们得到一个数组 arr

[ruby] view plain copy
  1. arr = '.666.555.444.333.22.11.'.split('.').reject(&:blank?)

= 。each 的使用

数字:

[ruby] view plain copy
  1. 2.0.0p0 :183 >   a = [1, 2, 3, 4, 5]
  2. => [1, 2, 3, 4, 5]
  3. 2.0.0p0 :184 > a.each {|number| puts number*2}
  4. 2
  5. 4
  6. 6
  7. 8
  8. 10
  9. => [1, 2, 3, 4, 5]
  10. 2.0.0p0 :185 >
  11. 字符:
  12. 2.0.0p0 :191 > lower_case = ["hi", "these", "are", "some", "words"]
  13. => ["hi", "these", "are", "some", "words"]
  14. 2.0.0p0 :192 > upper_case = []
  15. => []
  16. 2.0.0p0 :193 > lower_case.each do |word|
  17. 2.0.0p0 :194 >     upper_case << word.upcase
  18. 2.0.0p0 :195?>   end
  19. => ["hi", "these", "are", "some", "words"]
  20. 2.0.0p0 :196 > puts upper_case
  21. HI
  22. THESE
  23. ARE
  24. SOME
  25. WORDS
  26. => nil
  27. 2.0.0p0 :197 >

三。collect的使用

[ruby] view plain copy
  1. 2.0.0p0 :197 > lower_case = ["hi", "these", "are", "some", "words"]
  2. => ["hi", "these", "are", "some", "words"]
  3. 2.0.0p0 :198 > upper_case = lower_case.collect { |word| word.upcase }
  4. => ["HI", "THESE", "ARE", "SOME", "WORDS"]
  5. 2.0.0p0 :199 > puts upper_case.inspect
  6. ["HI", "THESE", "ARE", "SOME", "WORDS"]
  7. => nil
  8. 2.0.0p0 :200 >

四。map的使用

[ruby] view plain copy
  1. 2.0.0p0 :200 > a = [ "a", "b", "c", "d" ]
  2. => ["a", "b", "c", "d"]
  3. 2.0.0p0 :201 > a.map { |x| x + "!" }
  4. => ["a!", "b!", "c!", "d!"]
  5. 2.0.0p0 :202 > a
  6. => ["a", "b", "c", "d"]
  7. 2.0.0p0 :203 >

五。reject的使用

[ruby] view plain copy
  1. 2.0.0p0 :210 > (1..30).reject { |n| n % 2 == 0 }
  2. => [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]
  3. 2.0.0p0 :217 >   a = [1,2,3,4]
  4. => [1, 2, 3, 4]
  5. 2.0.0p0 :218 > a.reject {|n| n > 2}
  6. => [1, 2]
  7. 2.0.0p0 :219 >

六.select的使用

[ruby] view plain copy
  1. 2.0.0p0 :224 >   a = [1,2,3,4]
  2. => [1, 2, 3, 4]
  3. 2.0.0p0 :225 > a.select {|n| n > 2}
  4. => [3, 4]
  5. 2.0.0p0 :226 >

七.inject的使用

[ruby] view plain copy
  1. enum.inject(init_value) {|memo,obj|  block}
  2. enum.inject{ |memo,obj| block }
  3. 2.0.0p0 :226 > [1, 2, 3, 4].inject { |result, element| result + element }
  4. => 10
  5. 2.0.0p0 :227 > hash = [[:first_name, 'Shane'], [:last_name, 'Harvie']].inject({}) do |result, element|
  6. 2.0.0p0 :228 >       result[element.first] = element.last
  7. 2.0.0p0 :229?>     result
  8. 2.0.0p0 :230?>   end
  9. => {:first_name=>"Shane", :last_name=>"Harvie"}
  10. 2.0.0p0 :231 >

把array转换成hash表。有也第一个例子的基础,这个例子应该很容易看得懂。

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

inject带有一个参数和block。block中的两个参数是有含义的。第一个参数reslut在inject第一次执行block时把inject带的参数付值给它,element就是数组中的元素,该例中inject一共执行4次block,每次执行block完后,最后语句的结果再付值给result,如此循环,直到遍历数组中所有元素。我们深入这个例子看每一步执行的结果。
因为数组有4个元素,所以要执行4次block操作:
  第一次操作:result=0,既等于inject带的参数;element=1,既第一个元素;执行block后result + element =1,再把这个结果付值给result,所以在执行完第一次block后,result = 1。
  第二次操作:result=1,既上次运行block后的最后一条语句的结果;element=2,既第二个元素;执行block后付值result=3。
如此类推,直到最后一次执行完block,生产的值为10。就是inject的返回值了。

八。shuffle[n..m]

('a'..'z').to_a.shuffle[0..7].join

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

九. flatten

[ruby] view plain copy
  1. 2.0.0p247 :002 > [1,2,3,4,5,[6,7,8],[9,1,[1,2]]].flatten
  2. => [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 1, 2]
  3. 2.0.0p247 :003 >

ruby , each,map,collect,inject,reject,select,shuffle[n..m],flatten相关推荐

  1. scala 偏函数与 map/collect

    https://fangjian0423.github.io/2015/06/14/scala-partial/ https://www.jianshu.com/p/fa2ed7ed391e 0. c ...

  2. each,collect map collect! map!

    arr = [1,2,3] 1) arr2 = arr.each{|element| element = element * 2} #arr与arr2仍然都等于[1,2,3]   each返回原数组 ...

  3. java8 stream().map().collect()用法

    java8 stream().map().collect()用法 有一个集合: List<User> users = getList(); //从数据库查询的用户集合 现在想获取User的 ...

  4. Stream的特性、用法、stream().map().collect()用法

    Stream的特性.用法.stream().map().collect()用法 1.举例说明 有一个集合: List<User> users = getList(); 现在想获取User的 ...

  5. java8 .stream().map().collect() 的用法

    API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...

  6. ruby 中 map方法

    ruby 中 map方法 对数组中每个元素进行表达式操作,原始数组不会被改变,返回执行表达式结果的新数组 # 把 numbers 中每个值映射到 String 的 Array numbers = [1 ...

  7. 通俗易懂,java8 .stream().map().collect()用法

    API: https://www.runoob.com/java/java8-streams.html 模板: mylist.stream().map(myfunction->{return i ...

  8. ruby array_Ruby中带有示例的Array.shuffle方法

    ruby array Array.shuffle方法 (Array.shuffle Method) In this article, we will study about Array.shuffle ...

  9. stream().map().collect()用法

    有一个集合: List users = getList(); //从数据库查询的用户集合 现在想获取User的身份证号码:在后续的逻辑处理中要用: 常用的方法我们大家都知道,用for循环, List ...

最新文章

  1. 自动瘦脸与眼睛放大美颜算法
  2. QML提供的JavaScript主机环境
  3. asp.net表单提交方法GET\POST
  4. 【VS开发】【C++语言】reshuffle的容器实现算法random_shuffle()的使用
  5. php layui 框架,Thinkphp5+Layui高颜值内容管理框架
  6. linux加密框架 crypto 通用算法注册接口__crypto_register_alg注册流程
  7. 嵌入式开发笔记(二)嵌入式系统启动过程 (S5pv210)
  8. 算数运算符与关系运算符_JavaScript关系运算符
  9. LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset
  10. 学会写出"图形界面+数据库"的程序要多长时间?
  11. AS SSD Benchmark 免费固态跑分工具分享
  12. plc原理及应用_PLC编程与应用 适合初学者
  13. bochs运行xp_bochs xp镜像下载
  14. blast的替代品,使用hmmer寻找同源序列
  15. 子曰:中庸之为德也,其至矣乎!民鲜久矣。
  16. mysql opened tables_MySQL_MySQL性能优化之Open_Table配置参数的合理配置建议,在MySQL数据库中,Opened_tables表 - phpStudy...
  17. Kubernetes版本对接对象存储几种方案
  18. OPC是什么及OPC简介
  19. mysql.connector 小结
  20. 百度地图配合java 代码制作地图

热门文章

  1. 区块链、数字货币各方大佬观点(徐小平、吴晓波、薛蛮子)
  2. 商标注册申请的步骤是怎样的
  3. 使用决策树和随机森林预测NBA获胜球队
  4. 解决win7无法访问win2000共享的问题。
  5. 图片批量操作:重命名上传到Pinterest
  6. Java开发与Python开发优劣比较
  7. [竖立正确的贝叶斯三观] 关于predictive distribution 和非参贝叶斯的理解
  8. python flag用法_花了一晚上时间,终于把Python的基本用法归纳好了!
  9. python 爬虫爬取下载网易云音乐歌单的歌曲(需要使用JS的加密方法得出params去获取下载地址)
  10. python怎么爬取电影海报_Python 爬虫“王者”:豆瓣海报爬取