Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何计算嵌套数组?_Ruby_Multidimensional Array - Fatal编程技术网

Ruby 如何计算嵌套数组?

Ruby 如何计算嵌套数组?,ruby,multidimensional-array,Ruby,Multidimensional Array,我有一个嵌套数组,需要计算内部数组中的每个项,如果它们满足两个条件,则返回“是”或“否”。在下面的示例中,它应该返回['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")

我有一个嵌套数组,需要计算内部数组中的每个项,如果它们满足两个条件,则返回“是”或“否”。在下面的示例中,它应该返回['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 

您将看到my_array.map的计算结果

由于
push
返回您刚才推到的数组,因此您实际上是在映射三次结果,这样您的控制台输出就是
[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
my_数组=[[55,2]、[62,3]、[24,5]]
结果=my_array.map do |年龄,上限|
如果年龄>60岁和上限<5岁
“是的”
其他的
“没有”
结束
结束

您将看到
my\u array.map的评估结果

由于
push
返回您刚才推到的数组,因此您实际上是在映射三次结果,这样您的控制台输出就是
[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
my_数组=[[55,2]、[62,3]、[24,5]]
结果=my_array.map do |年龄,上限|
如果年龄>60岁和上限<5岁
“是的”
其他的
“没有”
结束
结束
看看这是否有效:

my_array = [[55, 2], [62, 3], [24, 5]]
result = my_array.map { |ary| (ary[0] > 60 && ary[1] < 5) ? 'yes' : 'no' }
my_数组=[[55,2]、[62,3]、[24,5]]
结果=my|u array.map{| ary |(ary[0]>60&&ary[1]<5)?“是”:“否”}
看看这是否有效:

my_array = [[55, 2], [62, 3], [24, 5]]
result = my_array.map { |ary| (ary[0] > 60 && ary[1] < 5) ? 'yes' : 'no' }
my_数组=[[55,2]、[62,3]、[24,5]]
结果=my|u array.map{| ary |(ary[0]>60&&ary[1]<5)?“是”:“否”}

您收到的错误消息是什么?您获取错误消息的代码是什么?根据您打算如何使用结果,计算my|u数组可能更方便。选择{age,cap | age>60&&cap<5}=>[[62,3]]。您得到的错误消息是什么?您获取错误消息的代码是什么?根据您打算如何使用结果,计算my|u数组可能更方便。
my|u数组。选择{age,cap | age>60&&cap<5}=>[[62,3]]