我有一个嵌套数组,需要评估内部数组中的每个项目,如果它们满足两个条件,则返回“是”或“否”。在下面的示例中,它应返回['no','yes','no'],但不返回。
my_array= [[55,2], [62,3],[24,5]]
result= Array.new
my_array.map do |age, cap|
if age > 60 && cap < 5
result.push("yes")
else
result.push("no")
end
end
这将返回正确的结果,但是三次。我想我需要在使用if / else之前深入到数组的第二层,但是当我在if / else语句之前的代码中添加以下内容时,会收到错误消息。
`my_array.each do |nested_array|
nested_array. map do |age, cap|
if .... etc.
答案 0 :(得分:2)
您正在查看my_array.map
的评估结果
由于push
返回了您刚刚推送到的数组,因此您实际上要映射3次结果,以便控制台输出为[result, result, result]
,并扩展为[["no", "yes", "no"], ["no", "yes", "no"], ["no", "yes", "no"]]
尝试一下:
my_array= [[55,2], [62,3],[24,5]]
result = my_array.map do |age, cap|
if age > 60 && cap < 5
"yes"
else
"no"
end
end
答案 1 :(得分:0)
看看是否可行:
my_array = [[55, 2], [62, 3], [24, 5]]
result = my_array.map { |ary| (ary[0] > 60 && ary[1] < 5) ? 'yes' : 'no' }