У меня есть следующий хеш и массив, каждый из которых содержит 8 элементов:
{1=>"2.06", 2=>"2.10", 4=>"2.00", 5=>"2.10", 6=>"2.20", 8=>"2.10", 9=>"2.10", 12=>"2.04"}
["2.06","2.10","2.00","2.10","2.20","2.10","2.10","2.04"]
Мне нужно убедиться, что каждый слот массива соответствует соответствующему значению хеша.Например, array[0]
должно равняться значению hash[:1]
, array[1]
должно равняться hash[:2]
и т. Д. Я не хочу сравнивать array[0]
с любым другим хеш-значением, отличным от hash[:1]
, array[1]
к любому другому значению, кроме hash[:2]
, и т. Д. Значения хеш-функции и массива считываются в точном порядке на изображении, так что порядок не нужно менять.Если какая-либо из этих пар не будет совпадать, они потерпят неудачу и перейдут к следующей паре.
Я попытался создать вложенный цикл, повторяющийся в массиве и хэше.но он сравнил каждое хеш-значение с одним слотом массива, а затем перешел к следующему слоту массива и повторил (см. мой текущий выходной код).Это мой код с псевдокодом, который мне нужен:
array.each_with_index do |item, index|
hash.each do |key, value|
puts "Key: #{key}"
puts "Index: #{index}"
#if item[index] == key[:value1]
#print pass, else print fail
#iterate to next pair
#if item[index+1] == key[:value2]
#repeat
#...
#end
end
end
Это то, что мой код выводит в настоящее время:
Key: 1
Index: 0
Key: 2
Index: 0
Key: 4
Index: 0
Key: 5
Index: 0
...
Эточто мне понадобится для вывода:
Key: 1
Index: 0
Pass
Key: 2
Index: 1
Pass
Key: 4
Index: 2
Fail
Key: 5
Index: 3
Pass
...