ids = @pages.collect { |p| p.id }.join(',')
ids类似: 23,32,53,64,155
取出所有符合条件的 id
说明:
each——连续访问集合的所有元素
collect—-从集合中获得各个元素传递给block,block返回的结果生成新的集合。
map——-同collect。
inject——遍历集合中的各个元素,将各个元素累积成返回一个值。
例子:
-
def debug(arr)
-
puts '--------'
-
puts arr
- end
-
-
h = [1,2,3,4,5]
-
h1 = h
-
h1.each{|v|puts sprintf('values is:%s',v)}
-
-
h2 = h.collect{|x| [x,x*2]}
-
debug h2
-
-
h3 = h.map{|x| x*3 }
-
debug h3
-
-
h4 = h.inject{|sum,item| sum+item}
-
debug h4
结果:
- values is:1
- values is:2
- values is:3
- values is:4
- values is:5
- --------
- 1
- 2
- 2
- 4
- 3
- 6
- 4
- 8
- 5
- 10
- --------
- 3
- 6
- 9
- 12
- 15
- --------
- 15
names = %w[
ruby rails java python cookoo firebody]
等同于:
names = ["
ruby", "rails", "java", "python", "cookoo", "firebody"]
分享到:
相关推荐
`collect`(又名`map`)方法也是一个强大的迭代器,它可以用来处理数组中的每个元素,并返回一个新的数组。与`each`不同的是,`collect`不仅遍历元素,还允许用户根据处理逻辑创建新的数组。 **语法:** ```ruby ...
9. **迭代器**:`Map`也支持Ruby的各种迭代器,如`select`、`reject`、`collect`等,这些方法可以在遍历过程中根据条件筛选、转换或过滤元素。 10. **自定义比较**:`Map`可以使用`==`操作符与其他`Map`或哈希进行...
`Enumerator` 模块提供了一套灵活的方法,使得可以在不提供块的情况下对这些方法进行后续操作,如 `collect` 和 `map`。 最后,Ruby提供了清理字符串开头和结尾空格的方法,如 `strip`;转换字符大小写的方法,如 `...
`, `collect`, `detect`, `each_with_index`, `entries`, `find`, `find_all`, `grep`, `include?`, `inject`, `map`, `max`, `member?`, `min`, `partition`, `reject`, `select`, `sort`, `sort_by`, `to_a`, `zip...
另一种常用的迭代器是`collect`(在某些版本的Ruby中也称为`map`)。`collect`迭代器不同于`each`,它不是简单地遍历元素,而是允许你在遍历过程中对每个元素应用一个转换函数,然后收集这些转换后的结果,形成一个...
值得注意的是,Ruby允许使用then作为分隔符,或者直接将if作为表达式修饰符,将条件和执行代码写在同一行。表达式修饰符形式的if会返回执行代码的结果。与if相反,unless用于当条件为假时执行代码。 此外,Ruby还...
接下来是`collect`迭代器,也被称为`map`。`collect`允许你对集合中的每个元素执行一个转换操作,并返回一个新的数组,包含了转换后的结果。它的语法如下: ```ruby new_collection = collection.collect { |item| ...
3. `collect`(也称为`map`):它将集合中的每个元素传递给Block,并使用Block的返回值构建一个新的数组。 ```ruby ["H", "A", "L"].collect { |x| x.succ } # 对每个元素调用 succ 方法并返回新数组,这里是 ["I...
2. map方法:也称为collect,它将集合中的每个元素通过一个块(block)进行处理,并返回一个新的数组,包含了所有处理后的结果。 ```ruby numbers = [1, 2, 3, 4, 5] squares = numbers.map { |num| num ** 2 } # ...
卡通收藏学习目标熟悉使用.collect或.map , .find和.include?等枚举器方法遍历数组的过程.include? 。 构建方法并控制其返回值。 使用if和else语句练习控制流。指示本实验中有四种方法可以完成: roll_call_dwarves...
卡通收藏学习目标熟悉使用.collect或.map , .find和.include?等枚举器方法遍历数组的过程.include? 。 构建方法并控制其返回值。 使用if和else语句练习控制流。指示本实验中有四种方法可以完成: roll_call_dwarves...
熟悉使用.collect或.map , .find和.include?等枚举器方法遍历数组的过程.include? 。 构建方法并控制其返回值。 使用if和else语句练习控制流。 指示 本实验中有四种方法可以完成: roll_call_dwarves summon_...
**collect**:也称为`map`,用于遍历集合并返回一个新的数组,新数组中的元素是原数组中元素经过指定操作后的结果。例如: ```ruby arr = [1, 2, 3] new_arr = arr.collect { |x| x * 2 } # new_arr 的值为 [2, 4, 6...
- **map**:通过一个转换函数创建一个新数组,别名为`collect`。 - **reduce**:将集合中的元素归结为单一值,也称为`inject`或`foldl`。 - **reduceRight**:与`reduce`类似,但是从右向左归结元素,别名为`...
- **map/collect** - **功能描述**:通过将列表中的每个元素通过转换函数(`iterator`)映射为新值,生成一个新的数组。 - **参数**: - `list`:要映射的列表。 - `iterator`:每次迭代调用的函数。 - **示例*...
Groovy 提供了对集合的强大支持,包括 `List` 和 `Map` 的多种操作方式。 **1. List** - **定义与访问** - Groovy 中的 `List` 可以包含不同类型的元素。 ```groovy list = [1, 2, 'hello', new java.util.Date...
- **说明**: Groovy 中的 `yield` 语法类似于 Python 和 Ruby 中的迭代器生成方式,可以通过闭包来创建迭代器。 - **示例代码**: ```groovy class Foo { static void main(String[] args) { // yield 代码示例 ...