如何2个阵列组合这样如何提取的阵列的元件,并且在另一个插入它,而仍保留其原始索引
a = ["x","y","z"]
b = [["a","b"],["c","d"],["e","f"]]
预期输出:
[["a","b","x" ],["c","d","y"],["e","f","z"]]
是否有任何内在的方法?
如何2个阵列组合这样如何提取的阵列的元件,并且在另一个插入它,而仍保留其原始索引
a = ["x","y","z"]
b = [["a","b"],["c","d"],["e","f"]]
预期输出:
[["a","b","x" ],["c","d","y"],["e","f","z"]]
是否有任何内在的方法?
有。您可以结合使用Array#zip
与Array#flatten
:
b.zip(a).map(&:flatten)
#=> [["a", "b", "x"], ["c", "d", "y"], ["e", "f", "z"]]
另一种方式是:
[b, a].transpose.map(&:flatten)
#=> [["a", "b", "x"], ["c", "d", "y"], ["e", "f", "z"]]
:)
这里是这样做另一种方式:
a = ["x","y","z"]
b = [["a","b"],["c","d"],["e","f"]]
b.map.with_index {|arr, idx| arr << a[idx]}
#=> [["a", "b", "x"], ["c", "d", "y"], ["e", "f", "z"]]
enum = a.to_enum
b.map { |arr| arr << enum.next }
#=> [["a", "b", "x"], ["c", "d", "y"], ["e", "f", "z"]]