Отредактировано после комментария от вопросника.
Далее отредактировано после соответствующего вопроса здесь Вопрос
Данные из текста выглядят так:
data = [
"Margarita", "New York", "Non veg-Veg", 15.32,
"Burgundian", "London", "Veg-Non-veg", 10.5,
"Krishna sagar", "Bangalore", "andhra style", 30.25,
"Adan saga", "Ayers", "north special", 40.12
]
Вы хотите превратить это в массив массива, выполнив следующее:
data = data.each_slice(4).to_a
Данные теперь становятся:
data = [
["Margarita", "New York", "Non veg-Veg", 15.32],
["Burgundian", "London", "Veg-Non-veg", 10.5],
["Krishna sagar", "Bangalore", "andhra style", 30.25],
["Adan saga", "Ayers", "north special", 40.12]
]
Если вы хотите отсортировать по цене, учитывая, что иногда это может быть nil
:
data.sort_by{|hotel, location, cuisine, price| price.to_f}
# => [
["Burgundian", "London", "Veg-Non-veg", 10.5],
["Margarita", "New York", "Non veg-Veg", 15.32],
["Krishna sagar", "Bangalore", "andhra style", 30.25],
["Adan saga", "Ayers", "north special", 40.12]
]
Если вы хотите отсортировать по местоположению, то по цене используйте массив:
data.sort_by{|hotel, location, cuisine, price| [location.to_s, price.to_f]}
# => [
["Adan saga", "Ayers", "north special", 40.12],
["Krishna sagar", "Bangalore", "andhra style", 30.25],
["Burgundian", "London", "Veg-Non-veg", 10.5],
["Margarita", "New York", "Non veg-Veg", 15.32]
]
Хорошо, что вы можете выровнять их в таблицу.