Ruby:在给定2d数组中的索引时,替换该索引处子数组中的第一个元素

时间:2014-04-24 09:19:42

标签: ruby arrays

我有一个看起来像的二维数组:

array = [["apples", 10], ["oranges", 12], ["peaches", 15], ["lemons", 7]]

我想在另一个2d数组的帮助下替换array中的一些字符串(保持array中的第二个位置不变),该数组包含我想用作替换的字符串和在第二个位置是我要放置替换的索引,它看起来像

replacements = [["blankets", 1], ["shoes", 3]]

所以我想把blankets放在array等索引1的数组的第一个位置,输出看起来像

output = [["apples", 10], ["blankets", 12], ["peaches", 15], ["shoes", 7]]

任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:2)

以下应该这样做:

replacements.each{|r| array[r[1]][0] = r[0] }

答案 1 :(得分:1)

replacements.each{|e, i| array[i][0] = e}

答案 2 :(得分:0)

单个循环可以完成任务:

replacements.each { |r| array[r[1]][0] = r[0] if array[r[1]] }