遍历嵌套数组并访问元素RUBY

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

我想遍历嵌套数组并对每个元素进行操作,因此在这种情况下,请对每个数字求平方。我知道如何为普通数组执行此操作,但是由于某些原因,当包含更深层的迭代来访问内部数组时,我得到了未定义的映射方法。我也是一个新手,所以如果您能解释一下它是如何工作的,那将对我的学习有所帮助。谢谢

def SquareArrayElements(n)
  n.each do |number|
    number.map do |num|
     squared_nums = num * num
  end
end
squared_nums  
end
SquareArrayElements([10,[[10],10],[10]])
arrays ruby multidimensional-array
2个回答
1
投票

您只需要在数组上调用map,而无需在整数上调用。这就是为什么您得到一个未定义的map方法的原因,整数不支持该方法。

尝试

def square_array(element)
  if element.responds_to?(:map)
    element.map{|m| square_array(m)}
  else
    element * element
  end
end

0
投票

自从您在评论中说过:

我想将10s平方并返回一个数组=> [100,100,100,100]。

我假设您不需要保留原始数组,而只需要一个具有平方结果的数组。如果是这种情况,您可以#flatten数组,然后对数字求平方:

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