使用Ruby转换数组

mctunoxg  于 2023-01-25  发布在  Ruby
关注(0)|答案(1)|浏览(144)

如何转换这个数组:

[["10"], ["20"], ["30"], ["40"], ["21"], ["31"], ["41"], ["32"], ["42"], ["43"]]

到这个数组中

[[1, 0], [2, 0], [3, 0], [4, 0], [2, 1], [3 1,], [4, 1], [3, 2], [4, 2], [4, 3]]

最理想的是在最初学者友好的版本可能请。我未能迭代通过数组彻底和使用正确的方法在正确的顺序。

8yparm6h

8yparm6h1#

如果输入总是像你的例子一样(数组的数组,每个数组都有一个字符串元素),那么你可以Map得到字符,然后Map结果得到整数;

[["10"], ["20"], ["30"], ["40"], ["21"], ["31"], ["41"], ["32"], ["42"], ["43"]]
  .map { |str, _| str.chars.map(&:to_i) }
# [[1, 0], [2, 0], [3, 0], [4, 0], [2, 1], [3, 1], [4, 1], [3, 2], [4, 2], [4, 3]]

相关问题