在两个二维数组Ruby中找到一个共同的值

时间:2014-10-28 19:49:50

标签: ruby-on-rails ruby arrays

我有两个数组,每个都是二维的,我想在位置i取数组1的值并尝试在数组2中找到相同的值。如果它们具有相同的值,则数组2的值为x位置在位置i的数组1中连接。

示例

阵列1

[[ 1 下,2,3,4,5,6],[3,5,7,2,12,5],[A,F ,3,d,4,G]]

数组2

[[b,e,w,1,4,6],[ 1 ,0,8,5,8,9]

所以新数组1将是

[[ 1 下,2,3,4,5,6,的 1 下,0,8 ,5,8,9],[3,5,7,2,12,5],[A,F,3,d,4,G]]

任何想法.....

1 个答案:

答案 0 :(得分:0)

您对任务的描述不正确。你不能

  

将数组1的值取在位置i

因为array 1本身包含数组,所以您可以在位置i, j中获取值。并在位置array 2的每个i中的j中搜索相同的值。如果这是你想要的,这里是示例代码:

arr_1 = [[1, 2, 3, 4, 5, 6], [3, 5, 7, 2, 12, 5], ['a', 'f', 3, 'd', 4, 'g']]
arr_2 = [['b', 'e', 'w', 1, 4, 6], [1, 0, 8, 5, 8, 9]]

search_i = 0
search_j = 0

search_val = arr_1[search_i][search_j]

arr_2.each_with_index do |val_i, i|
  val_i.each_with_index do |val_j, j|
    if j == search_j && arr_2[i][j] == search_val
      arr_1[search_i].concat(arr_2[i])
    end
  end
end

p arr_1 # [[1, 2, 3, 4, 5, 6, 1, 0, 8, 5, 8, 9], [3, 5, 7, 2, 12, 5], ["a", "f", 3, "d", 4, "g"]]