在 Ruby 中的二维数组中选择索引项 froman 元素



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

如果你在 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

首先,collectif 语句的所有结果,然后compact删除所有nil出现。

arr.each_with_object([]) { |(n,s),arr| arr << s if n.even? }
#=> ["b", "d"] 

我会添加解释性评论,但找不到任何需要解释的内容。

对于详细程度,请选择数字为偶数的每个数组,然后映射其最后一个元素:

array1.select { |num, _| num.even? }.map(&:last)
# ["b", "d"]

相关内容

  • 没有找到相关文章

最新更新