[英]Ruby: match first, second, this etc elements from a dimensional array
I have an array of arrays. 我有一个数组数组。 I want to concatenate the first, second, third elements of arrays. 我想连接数组的第一,第二,第三元素。
Example arrays: 数组示例:
a = [[4, 5, 6], [1, 2, 3], [8, 9, 10]]
a1 = [[1, 2, 3], [8, 9, 10]]
a2 = [[4, 5, 6], [1, 2, 3], [8, 9, 10], [11, 21, 31]]
Output: 输出:
out of a: [[4,1,8],[5,2,9],[6,3,10]]
out of a1: [[1,8],[2,9],[3,10]]
out of a2: [[4,1,8,11],[5,2,9,21],[6,3,10,31]]
Use transpose
method 使用transpose
方法
a.transpose
=> [[4, 1, 8], [5, 2, 9], [6, 3, 10]]
Array# transpose
: Array# transpose
:
[a, a1, a2].map(&:transpose)
# [
# [[4, 1, 8], [5, 2, 9], [6, 3, 10]],
# [[1, 8], [2, 9], [3, 10]],
# [[4, 1, 8, 11], [5, 2, 9, 21], [6, 3, 10, 31]]
# ]
Whenever Array#transpose
can be used so can Enumerable#zip . 只要可以使用Array#transpose
就可以使用Enumerable#zip 。
a.first.zip *a.drop(1)
#=> [[4,1,8],[5,2,9],[6,3,10]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.