2012-12-30 73 views
-2

我需要比較數組內的值。比較數組中的值嗎?

例如,我的數組是:

[18, 1, 113, 103, 1100, 909, 94, 67, 61] 

我需要比較各個值,像18->11->113113->103等。

+0

那麼,你需要對值進行排序嗎?比較它們的目的是什麼?否則,您可以使用兩個簡單的循環遍歷數組並對它們進行比較。 – Annabelle

回答

2

你不說你想要什麼樣的比較,但是這將通過陣列走,比較連續元素:

puts [ 
    18, 1, 113, 103, 1100, 909, 94, 67, 61 
].each_cons(2).map{ |a, b| a <=> b } 

,輸出:

1 
-1 
1 
-1 
1 
1 
1 
1 

比較運算符<=>是用於排序以比較兩個值。當a < b,a == b時爲0,時爲-1。

因此,這告訴我們18 > 1,1 < 113,113 > 103,103 < 1100,其餘的都是按降序排列。

用你需要的任何比較替換<=>