[英]Add elements of an array to a specific index of each array within an array of arrays
我有一個數組數組用作數據表,並且正在嘗試添加一個額外的數組,就像在該表中添加一個額外的列一樣。
為了簡單起見,假設所述第一陣列是a
a = [["a", "b", "c"], ["e", "f", "g"], ["i", "j", "k"]]
第二個數組是b
b = ["d", "h", "l"]
所需的輸出是:
c = [["a", "b", "c", "d"], ["e", "f", "g", "h"], ["i", "j", "k", "l"]]
我嘗試使用+
和一些嘗試使用map
但無法獲取它
您可以將它們壓縮在一起,以創建數組元素,例如[["a", "b", "c"], "d"]
,然后將每個元素展平。
a.zip(b).map(&:flatten)
#=> [["a", "b", "c", "d"], ["e", "f", "g", "h"], ["i", "j", "k", "l"]]
根據卡里的評論,答案得到了改善。 我認為他以前做過Ruby的工作。
a.zip(b).map { |arr,e| arr + [e] }
#=> [["a", "b", "c", "d"],
# ["e", "f", "g", "h"],
# ["i", "j", "k", "l"]]
中間計算如下。
a.zip(b)
#=> [[["a", "b", "c"], "d"],
# [["e", "f", "g"], "h"],
# [["i", "j", "k"], "l"]]
參見Array#zip 。
可以使用#each_with_index
聯合#map
遍歷陣列a
並附加陣列的各個元件b
> a.each_with_index.map{|e, i| e | [b[i]] }
=> [["a", "b", "c", "d"], ["e", "f", "g", "h"], ["i", "j", "k", "l"]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.