Ruby map、each、select、inject、collect 、detect reference
参考 https://ruby-china.org/topics/26718
map:(collect是map的别名函数)
对数组中每个元素进行表达式操作,原始数组不会被改变,返回执行表达式结果的新数组
[1,2,3,4,5,6,7,8,9,10].map{|e| e*3}
=> [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
[1,2,3,4,5,6,7,8,9,10].collect{|e| e == 3}
=>[false, false, true, false, false, false, false, false, false, false]
each: 常用作数组的循环操作,对循环的参数做表达式操作,原数组不会被改变,返回原始数组
eg:[1,2,3,4,5,6,7,8,9,10].each{|e| print e.to_s + "###"}
=> 1###2###3###4###5###6###7###8###9###10### =>返回 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
select: 相当于过滤器,返回符合表达式元素的新数组,如果所有都不符合表达式则返回空数组
eg:[1,2,3,4,5,6,7,8,9,10].select{|e| e == 3}
=> [3]
eg:[1,2,3,4,5,6,7,8,9,10].select{|e| e*3}
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
detect:(find的别名函数) 返回列表中第一个符合条件的元素
eg:[1,2,3,4,5,6,7,8,9,10].detect{|e| e == 3 || e == 2}
=> 2
inject: 在所声明的容器中注入符合条件的元素,累加器作用
eg:[1,2,3,4,5,6,7,8,9,10].inject{ |sum,e| sum += e } 其中sum为所声明的注入器 将累加后的结果最后注入到sum中并返回注入器最后结果
eg:[1,2,3,4,5,6,7,8,9,10].inject{|result,elem| result + elem} => 55
此时inject没有带参数,这是result会为数组中第一个元素,elem为第二个元素,依次累加返回最后结果
eg: {1 => 'a',2 => 'b',3 =>'c'}.inject({}){|key,value| value} key => {} value => [3,'c']
reject: 去除列表中符合条件的元素
eg:[1,2,3,4,5,6,7,8,9,10].reject{|e| e==2 || e==8}
=> [1, 3, 4, 5, 6, 7, 9, 10]
Ruby map、each、select、inject、collect 、detect reference的更多相关文章
- 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图.谷歌中国中文地图. 最近正好有点业余时间,所以在做做各种地图.Bing Map控件本身就能显示必应地图,但是很遗憾微软 ...
- 并发服务器三种实现方式之进程、线程和select
前言:刚开始学网络编程,都会先写一个客户端和服务端,不知道你们有没有试一下:再打开一下客户端,是连不上服务端的.还有一个问题不知道你们发现没:有时启服务器,会提示“Address already in ...
- SqlServer2012——Select,分组,排序、插入
1.select 简单语句 --select语句 * --select子句 * AS result --select子句,可以将结果保存在result中 ~~~~~~~~~~~~~~~~~~~~~~~ ...
- m_Orchestrate learning system---八、下拉列表(select标签)如何实现链接功能
m_Orchestrate learning system---八.下拉列表(select标签)如何实现链接功能 一.总结 一句话总结:option的值就是链接地址,选择事件为指向选中的option的 ...
- Oracle中复制表的方法(create as select、insert into select、select into)
转: Oracle中复制表的方法(create as select.insert into select.select into) 2018-07-30 22:10:37 小白白白又白cdllp 阅读 ...
- 七、玩转select条件查询
前言: 电商中:我们想查看某个用户所有的订单,或者想查看某个用户在某个时间段内所有的订单,此时我们需要对订单表数据进行筛选,按照用户.时间进行过滤,得到我们期望的结果. 此时我们需要使用条件查询来对指 ...
- 【黄啊码】MySQL入门—3、我用select *,老板直接赶我坐火车回家去,买的还是站票
大家好!我是黄啊码,学会了DDL语句了吗?那我们今天就来学习一下基本的查询语法,我见过很多外包机构的程序员都是万物皆可select *,然后项目跑了一段时间就基本跑不动了,问就回答:服务器配置不够,加 ...
- IDEA02 利用Maven创建Web项目、为Web应用添加Spring框架支持、bean的创建于获取、利用注解配置Bean、自动装配Bean、MVC配置
1 环境版本说明 Jdk : 1.8 Maven : 3.5 IDEA : 专业版 2017.2 2 环境准备 2.1 Maven安装及其配置 2.2 Tomcat安装及其配置 3 详细步骤 3.1 ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装
[MySQL]Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后, ...
随机推荐
- BZOJ2561 最小生成树 【最小割】
题目 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多 ...
- Spring的声明式事务管理<tx:advice/> 有关的设置
<tx:advice/> 有关的设置 这一节里将描述通过 <tx:advice/> 标签来指定不同的事务性设置.默认的 <tx:advice/> 设置如下: 事务传 ...
- 接口自动化测试框架--http请求的get、post方法的实现
已知两种方法.一种是通过httpclient实现(貌似很简单,以后看一下),一种是以下方法: Client实现: package common; import com.alibaba.fastjson ...
- 【java小工具】从.java文件中筛选出方法,并计算出方法在这些文件中出现的次数
package getMethod; import java.io.*; import java.util.*; import java.util.regex.Matcher; import java ...
- poj 1061 青蛙的约会(二元一次不定方程)
Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要 ...
- android系统编译打开系统蓝牙
在项目配置文件ProjectConfig.mk中开启蓝牙以后,但是设置菜单中并没有出现蓝牙选项,最后发现是因为ProjectConfig.mk同级目录下没有蓝牙配置文件android.hardware ...
- Laravel 5 Form 和 HTML 的使用
最近在用 laravel 5 做例子,在做到表单的时候,习惯性的使用 Form::open() 结果发现提示错误,没有这个类, 好吧,找了找,发现 在laravel 5 中,把 from 和 html ...
- 关于事件委托和时间冒泡(以及apply和call的事项)
搜索事件委托和事件冒泡,网上一大堆乱七八糟的解释,当然意思都对,没毛病. but,真的无聊. 事件冒泡:事件会从点击的元素开始依次向上流出,直到html,遇见事件监听则执行. 事件委托:原因——父元素 ...
- flowable资料
flowable-modeler画流程图:https://www.youtube.com/watch?v=0pqD50pySJg 这个视频跳过创建用户那一步了:https://www.youtube. ...
- 用“道”的思想解决费用流问题---取/不取皆是取 (有下界->有上界) / ACdreamoj 1171
题意: 给一个矩阵,给出约束:i(0<i<n)行至少去ai个数,j行至少取bi个数,要求取的数值之和最小. 开始一见,就直接建了二分图,但是,发现这是有下界无上界最小费用流问题,肿么办.. ...