从Ruby中的二维数组中的元素中选择索引项目

问题描述 投票:0回答:1

我不确定如何在给定第一个条件的情况下从二维数组的每个数组中选择第二个项目。这是与我要完成的任务类似的示例:

如果您在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']

ruby loops multidimensional-array each
1个回答
0
投票

您可以通过收集和紧凑的组合来做到这一点:

array1.collect { |num, letter| letter if num.even? }.compact

首先,您collect if语句的所有结果,然后您compact删除所有nil出现的位置。

© www.soinside.com 2019 - 2024. All rights reserved.