簡體   English   中英

將數組的元素添加到數組中每個數組的特定索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM