如何一次只替换数组中的一个值

时间:2016-09-10 21:05:02

标签: arrays ruby indexing replace iteration

我在替换数组中的值时遇到问题。 我想将$temp中的一个值替换为array1中的值。我知道array2中某个值的索引,我想将其值添加到array2的完全相同的位置。

这是我的尝试:

array1

我想将array_1 = ["t","t","t"] array_2 = ["a","a","c"] array_2_index =[0,1] 替换为array_1[1] 输出应该是这样的:

array_2[1]

1 个答案:

答案 0 :(得分:0)

你可以这样做。

array_1 = ["t","t","t"]
array_2 = ["a","a","c"]

array1_index = 0
array2_index = 2 

array_2.delete_at(array2_index)
array_2.insert(array2_index, array1[array1_index])

这会返回['a', 'a', 't']

您正在删除要替换的元素,然后在同一索引处插入新元素。

您可以将所有这些包装在一个方法中,如此

def replace_element(array1, array2, array1_index, array2_index)
  array_2.delete_at(array2_index)
  array_2.insert(array2_index, array1[array1_index])
end

假设您有要替换的2d索引数组,

index = [[0,1],[2,3],[4,5]]

您可以遍历每个并运行方法

index.each do |array1_index, array2_index|
  replace_element(array1, array2, array1_index, array2_index)
end