首先,我们来定义这样一个function
function repeatCount(tab)
end
该function内部该如何实现呢?
首先,判断输入参数的类型,如果不是table,则提示:
assert(type(tab) == "table", "Input Para Error!")
然后,定义一个table,用于存储统计结果:
local countTab = {}
之后,我们需要对输入参数tab进行遍历:
for k,v in ipairs(tab) do
end
在遍历时,我们需要对每一个遍历结果做什么呢?
显然,v就是遍历到的元素,k是其索引(也就是该元素的位置)。(这点不理解的请学习ipairs遍历的相关知识)
如果该元素是第一次进行统计,那么countTab里之前就没有以v的值为键的元素,因此,我们需要添加该键并把位置加入:
if countTab[v] == nil then
countTab[v] = {k}
end
否则,就把该元素的位置加入:
else
table.insert(countTab[v],k)
最后,把countTab返回就可以了。