У меня есть 2 массива из 2 разных мест, но они содержат одинаковые элементы. Ниже показано, что у меня есть:
@var2 = ["2/05/2008", "$1.5000", "$2.0000"]
["1/06/2007", "$1.4000", "$1.0000"]
@var3 = ["1/06/2007", "$1.4000", "$1.0000"]
["2/05/2008", "$1.5000", "$2.0000"]
И вот код, как я получаю эти массивы выше ... не хороший рубиновый код, я его признаю
var1 = Nokogiri::HTML(open(file.htm))
var1.xpath('//tr[position() > 1]').map do |row|
@var2 = row.xpath('td').map(&:text)[0,3]
puts @var2
end
File.open('some.txt') do |file|
file.each_line do |line|
line1 = line.split(' ')
line2 = line1[0]
line3 = "$" + line1[1]
line4 = "$" + line1[2]
@var3 = line2.split(' ') + line3.split(' ') + line4.split(' ')
puts @var3
end
file.close()
end
В обеих этих переменных у меня есть несколько таких строк. Как я могу сравнить @var2
и @var3
? Также @var2
в порядке убывания даты. Есть ли способ сравнить значения / содержимое двух и получить результат? Это также означает, что с указанным выше форматом, если я изменю значение в одном из массивов, сравнение не будет выполнено, например:
@var2 = ["2/05/2008", "$1.5000", "$2.0000"]
["1/06/2007", "$1.4000", "$1.0000"]
@var3 = ["1/06/2007", "$1.4456", "$1.0000"]
["2/05/2008", "$1.5000", "$2.2222"]
Я пробовал несколько способов, но, к сожалению, это не сработало. Я думаю, что я должен зацикливаться на массивах и сравнивать, но не уверен, как это сделать.
Я пытался @var2 & @var3
, @var2 - @var3
. Кажется, они не работают, если я изменяю значение в одном из массивов. Сравнение по-прежнему проверяет индекс и говорит, что совпадения найдены. Мне нужно точное построчное сравнение со значениями в каждом массиве.
Также дополнительная информация: -
Я хочу знать, содержит ли массив точно такие же элементы, порядок не имеет значения.
В массивах var2 и var3 могут быть дубликаты. Размеры массива будут одинаковыми. не будет меньше элементов, ни NIL.