ruby sortby 3-ий элемент многомерного массива npot работает нормально - PullRequest
0 голосов
/ 19 мая 2010

Я использую ruby ​​для сортировки массива, где каждый элемент массива является другим массивом.

У меня есть это:

Data = Data.SortBy { |Info| info[3] }

пример данных в этом столбце:

3.1
2
5.65
-1
0.4
-9.43
-10.87
-2.3

Должно быть отсортировано в:

5.65
3.1
2
0.4
-1
-2.3
-9.43
-10.87

Но получается так:

5.65
3.1
2
0.4
-1
-10.87
-2.3
-9.43

Он сравнивает только первый символ числа с плавающей точкой ... не целое число?

1 Ответ

1 голос
/ 19 мая 2010

Похоже, что сортировка происходит по алфавиту, а не по цифре, поэтому «1» предшествует «10».

Я предполагаю, что данные в информации являются строками. Если это так, вы можете преобразовать их в числовые числа с плавающей точкой для операции сортировки:

data = data.sort_by{|info| info[3].to_f}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...