Я пытаюсь практиковать table.sort
ing и таблицы в целом. Я беру таблицу t{}
ниже и table.sort
это числовое значение каждого из имен. У меня возникли проблемы с печатью исходной таблицы t{}
после того, как она была отсортирована в a{}
(я пытаюсь распечатать a{}
, чтобы это было ясно). Где бы я разместил print (
и какой код?)
в код вроде этого?Пытается проверить мою работу, но как печатать()?
Извините за новобранец, вопрос начинающего. Но у меня возникла проблема с пониманием того, где следует вставлять строки print()
в function
или код для их проверки. Я меняю return
с print
и т. Д. Я до сих пор не могу понять эту часть.
Я ценю помощь ребятам!
t = {
Steve = 4,
Derek = 1,
Mike = 3,
Steph = 8,
Mary = 15,
Danny = 10
}
function pairsByKeys (t,f)
local a = {}
for x in pairs (t) do
a[#a + 1] = x
end
table.sort(a,f)
local i = 0
return function()
i = i + 1
return a[i], t[a[i]]
end
end
local timer = os.time()
repeat until os.time() > timer + 10
DOH! Спасибо. Ну, что я делаю неправильно в своем коде, если я хочу, чтобы они сортировали имена по их числовому значению? Например, 'Dekek 1' будет первым, тогда' Mike 3' будет вторым и т. Д. – Pwrcdr87
@ Pwrcdr87 Функция называется 'pairsByKeys', потому что она выполняет сортировку по ключу. Вам нужен другой итератор для сортировки по значению. –
@ Pwrcdr87 Простым способом сделать это является создание другой таблицы с парами обратного ключа-значения типа '{4 = Steve, 1 = Derek}' и т. Д. И затем используйте 'pairsByKeys' для печати этой таблицы. –