При проверке последовательных значений в моей таблице мой текущий код просто считает длину таблицы - однако при подсчете непоследовательных значений он работает отлично.
Моя попытка может быть замечена в кодениже;верхний код - это непоследовательный счетчик, который работает - нижний код - это мой попытавшийся и неудачный последовательный код счета.
--creates a function that counts the number of things in a table
function tCount(t,str,con)
if con ~= true then
local count = 0
for _,v in pairs(t) do --key/value of table
if v == str then --if values matches the string
count = count + 1 --add 1 to count
end
end
return count
else --consecutive count code
local cCount = 0
for k,v in pairs(t) do --key/value of table
if k == 1 then --if it's the first index
if v == str then --if the value is equal to the inputted string
cCount = cCount + 1 --add 1 to consecutiveCount
end
else
if v[k] == v[k-1] then --if the value is equal to the previous value
cCount = cCount + 1 --add 1 to consecutiveCount
else --otherwise
cCount = 1 --set consecutiveCount back to 1
end
end
end
return cCount --return the consecutiveCount value
end
end
--debug
alpha = {"one","one","three","one","two"}
print(tCount(alpha,"one",false),tCount(alpha,"one",true))
Result: 3 5
Мне бы хотелосьперезапускать счетчик каждый раз, когда появляется новое значение, и в настоящее время оно просто подсчитывает каждое значение.
Что я сделал не так и как я могу это исправить?