1

如何重新排序数组

[1, 2, 3, 4, 5, 6, 7, 8, 9]

进入..

[1, 4, 7, 2, 5, 8, 3, 6, 9]

我需要它用于 3 列 CSS 布局:

<ul>
  <li>1</li>
  <li>4</li>
  <li>7</li>
  <li>2</li>
  <li>5</li>
  <li>8</li>
  <li>3</li>
  <li>6</li>
  <li>9</li>
</ul>


ul { -webkit-column-count: 3 }

这应该产生:

| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
4

2 回答 2

2
ary = (1..9).to_a
ary.each_slice(3).to_a.transpose.flatten
于 2013-03-23T09:50:50.953 回答
1
slices = [1, 2, 3, 4, 5, 6, 7, 8, 9].each_slice(3).to_a
zip = slices[0].zip(*slices[1..-1]).flatten
#=> [1, 4, 7, 2, 5, 8, 3, 6, 9]
于 2013-03-23T09:46:20.317 回答