1

[a, [b], c, [d], ...]たとえば、次のような構造の配列があります。

array = [0, [1], 2, [1]]

そして私は必要です:

[[0, 1], [2, 1]]

どうすればいいのですか?:P

アップデート:

この配列をどのように処理するのか疑問に思いました

array = [0, [], 1, [], 2, []]

の中へ

[[0, 1], [2, 1]]

つまり、空のものを削除し、それに応じて上記のようにマージします。

ありがとう :)

4

2 に答える 2

2
array.flatten.each_slice(2).to_a
于 2013-02-17T08:26:47.403 に答える
2

私は書くだろう:

array.each_slice(2).map { |x, ys| [x, ys.first] }
#=> [[0, 1], [2, 1]]

map { |x, (y)| [x, y] }確かに不可解な開梱ですが、書くこともできることに注意してください。

于 2013-02-17T08:47:57.937 に答える