我有数组basket = ["O", "P", "W", "G"]
和sack = ["G", "P", "O", "W"]
。如何比较这些数组以确定元素是否按相同顺序排列?
答案 0 :(得分:3)
您可以使用:
basket == sack #=> false, for given values
如果您比较它们,请使用相同的顺序:
basket.sort == sack.sort #=> true
另外,请检查" Comparing two arrays in Ruby"有关比较数组的讨论。
答案 1 :(得分:0)
如果两个数组都可以包含不同数量的元素以及可能包含一些额外元素,并且您想要确定这两个数组共有的那些元素是否以完全相同的顺序出现,那么,您可以执行以下操作:
basket = ["D", "O", "P", "W", "G", "C"]
sack = ["Z", "O", "W", "P", "G", "X"]
p (basket - (basket - sack)) == (sack - (sack - basket))
答案 2 :(得分:0)
这是我能够提出的解决方案。
ordered = 0
disordered = 0
index = 0
while index < basket.length
if basket[index] == sack[index]
ordered+= 1
elsif basket.include?(sack[index]) && (basket[index] != sack[index])
disordered+= 1
end
index += 1
end
puts" there are #{ordered} ordered common items and #{disordered} disordered common items"
我希望它有所帮助。