我不确定如何在给定第一个条件的情况下从二维数组的每个数组中选择第二个项目。这是与我要完成的任务类似的示例:
如果您在Ruby中有一个二维数组,[[1,'a'],[2,'b'],[3,'c'],[4,'d']]
,那么如何只用偶数数组中的字母创建一个数组? (假设每个子数组具有相同的格式:[数字,字母])
尽管此代码不起作用,但我认为解决方案将类似于:
array1 = [[1,'a'],[2,'b'],[3,'c'],[4,'d']]
array2 = array1.each do |num, letter|
if num.even?
return letter
end
end
我希望在运行它之后将array2的值设为['b', 'd']
。
您可以通过收集和紧凑的组合来做到这一点:
array1.collect { |num, letter| letter if num.even? }.compact
首先,您collect
if语句的所有结果,然后您compact
删除所有nil
出现的位置。