Ассоциативная сортировка таблицы по значению в Lua
У меня есть таблица ключей => значений, которую я бы хотел отсортировать в Lua. Все ключи являются целыми числами, но не являются последовательными (и имеют значение). Единственная функция сортировки Lua -table.sort
, который обрабатывает таблицы как простые массивы, отбрасывая исходные ключи и их связь с конкретными элементами. Вместо этого я бы хотел использоватьРНРasort()
функция.
Что у меня есть:
items = {
[1004] = "foo",
[1234] = "bar",
[3188] = "baz",
[7007] = "quux",
}
Что я хочу после операции сортировки:
items = {
[1234] = "bar",
[3188] = "baz",
[1004] = "foo",
[7007] = "quux",
}
Есть идеи?
Редактировать: Основываясь на ответах, я предполагаю, что это просто странная особенность конкретного встроенного интерпретатора Lua, с которым я работаю, но во всех моих тестахpairs()
всегда возвращает элементы таблицы в том порядке, в котором они были добавлены в таблицу. (то есть две вышеупомянутые декларации будут повторяться по-разному).
К сожалению, поскольку это не нормальное поведение, похоже, я не могу получить то, что мне нужно; Lua не имеет необходимых встроенных инструментов (конечно), а встроенная среда слишком ограничена, чтобы я мог ее обойти.
Тем не менее, спасибо за помощь, все!