我似乎無法找到一種方法將兩個陣列添加在一起。例如有一種方法來添加 A = [1,2,3] B = [4,5,6] 得到結果 C = [5,7,9]添加兩個紅寶石陣列
2
A
回答
6
問題是,當陣列是不一樣的尺寸:
a = [1,2]
b = [4,5,6]
ary = a.map.with_index{ |m,i| m + b[i].to_i }
=> [5, 7]
a = [1,2,3]
b = [4,5]
ary = a.map.with_index{ |m,i| m + b[i].to_i }
=> [5, 7, 3]
如果所述第二陣列是較短它的工作原理。如果第一個數組更短,它將截斷結果數組的長度以適應。這可能不是你想要的。
a = [1,2,3]
b = [4,5,6]
ary = a.map.with_index{ |m,i| m + b[i].to_i }
=> [5, 7, 9]
解決數組長度問題會改變一些事情。我這樣做:
a = [1,2,3]
b = [4,5]
ary = a.zip(b).each_with_object([]){ |(a,b), m| m << a + b.to_i }
=> [5, 7, 3]
+0
工作很好,謝謝! – user1516050
6
我不噸比這更好:c = a.zip(b).map { |x, y| x + y }
假設你的數組具有相同的大小。
+0
啊,我怎麼錯過'zip_with'。 –
0
爲相同長度的陣列的另一個選項:
[a,b].transpose.map{|x| x.reduce :+}
特別有用的添加時多個陣列:
[a,b,c,d,e].transpose.map{|x| x.reduce :+}
相關問題
- 1. 兩個紅寶石陣列
- 2. 添加兩個陣列排列的紅寶石
- 3. 紅寶石排序兩個陣列
- 4. 紅寶石陣列
- 5. 添加元素到紅寶石陣列返回新陣列
- 6. 紅寶石陣列範圍
- 7. 紅寶石陣列切片
- 8. 紅寶石陣列內部
- 9. 陣列中的紅寶石
- 10. 紅寶石陣列換行
- 11. 紅寶石發現陣列
- 12. 紅寶石陣列注入
- 13. 紅寶石陣列減法?
- 14. 紅寶石:生成陣列
- 15. 紅寶石:從陣列
- 16. 紅寶石YAML陣列
- 17. 拼合紅寶石陣列
- 18. 紅寶石從陣列
- 19. 紅寶石嵌套陣列
- 20. 轉換陣列,紅寶石
- 21. 紅寶石:在陣列
- 22. 合併紅寶石陣列
- 23. 紅寶石 - 陣列弄平
- 24. 紅寶石陣列平等
- 25. 紅寶石陣列麻煩
- 26. 紅寶石陣列,[]操作
- 27. 紅寶石陣列打印
- 28. 紅寶石陣列值
- 29. 紅寶石塊到陣列
- 30. 完成紅寶石陣列
當一個陣列具有比所述多個元件,會發生什麼其他? –