bra*_*rad 82 ruby arrays iteration
我只是学习Ruby,所以如果这对于这里来说太新手太过道歉了,但是我无法从镐书中解决这个问题(可能只是没有仔细阅读).无论如何,如果我有这样的数组:
arr = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
...而且我想,比如说,将数组中的每个值乘以3,我已经计算出执行以下操作:
arr.each {|item| item *= 3}
Run Code Online (Sandbox Code Playgroud)
......不会得到我想要的东西(我明白为什么,我不是在修改数组本身).
我没有得到的是如何在迭代器之后从代码块内部修改原始数组.我确信这很容易.
Mar*_*ers 129
用于map从旧数组创建一个新数组:
arr2 = arr.map {|item| item * 3}
Run Code Online (Sandbox Code Playgroud)
使用map!修改数组到位:
arr.map! {|item| item * 3}
Run Code Online (Sandbox Code Playgroud)
看到它在线工作:ideone
Chu*_*uck 17
要直接修改数组,请使用arr.map! {|item| item*3}.要创建基于原始数据的新数组(通常更可取),请使用arr.map {|item| item*3}.事实上,我在使用之前总是三思而后行each,因为通常有一个更高阶的函数map,select或者inject那就是我想要的.