首页 > 解决方案 > 如何交换嵌套数组中的变量?

问题描述

我有 2 个已压缩在一起的数组,现在我正在尝试在偶数位置滑动值。

所以这就是我尝试过的:

a = [1, 2, 3, 4]
b = [111, 222, 333, 444]
c = a.zip(b)

# Now c is equal to: [[1, 111], [2, 222],[3, 333],[4, 444]]

 c.map.with_index do |item, index|
   a = item[0]
   b = item[1]
   if index%2 == 0
     a, b = b, a
   end
 end

我想拥有的:

c = [[1, 111], [222,2], [3, 333],[444, 4]]

但是还是不行,有没有更好的解决方案?或者我怎样才能修复我的让它工作?

编辑:我意识到我可能只使用“.reverse”方法来交换元素。但我仍然无法让它发挥作用。

标签: ruby-on-railsarrays

解决方案


也许尝试:

c.map.with_index do |item, index|
  index%2 != 0 ? item.reverse : item
end

 => [[1, 111], [222, 2], [3, 333], [444, 4]] 

推荐阅读