首页 > 解决方案 > 如何拼接数组并合并回来

问题描述

假设我有一个像这样的二维数组:

[ 3,    4,   8,   12 ]
[ 2,    6,   7,   16 ]
[ 1,   10,  11,   15 ]
[ 5,    9,  13,   14 ]

我想要at和it into以便我得到以下信息shift6[1][1]unshift[2][1]

[ 3,    4,   8,    12 ]
[ 2,    7,   11,   16 ]
[ 1,    6,   10,   15 ]
[ 5,    9,   13,   14 ]

我想我会splice(1,1)在第二个和第三个数组上得到:

a: [6, 7]
b: [10, 11]

然后做:

b.unshift(a.shift)
a << b.pop

标签: rubyalgorithmmultidimensional-array

解决方案


给定这个数组:

ary = [
        [ 3,    4,   8,   12 ],
        [ 2,    6,   7,   16 ],
        [ 1,   10,  11,   15 ],
        [ 5,    9,  13,   14 ]
      ]

您可以通过并行分配来做到这一点:

ary[2][1], ary[1][1], ary[2][2], ary[1][2] = ary[1][1], ary[1][2], ary[2][1], ary[2][2]

也许你可以把它变成一种方法。


推荐阅读