我有一个如下表,我不需要知道哪个产品卖了多少,我只想知道哪个产品最受欢迎。你知道哪种方法是最好的方法吗? 就像在下面的例子中,知道因为产品“蓝色”中的 3 个已经售出,所以它是最受欢迎的
local products = {}
products["430373bb5b7a40a04f9"] = "red"
products["0dce4263af4b5cfe0de"] = "red"
products["cf2559afb736c1eb1bc"] = "green"
products["abc4d248541c3386c88"] = "blue"
products["bb9386c65270948ebee"] = "blue"
products["b193fba741cd646a9c0"] = "blue"
最佳答案
此示例将计算单次通过的销售数量。
local products = {}
products["430373bb5b7a40a04f9"] = "red"
products["0dce4263af4b5cfe0de"] = "red"
products["cf2559afb736c1eb1bc"] = "green"
products["abc4d248541c3386c88"] = "blue"
products["bb9386c65270948ebee"] = "blue"
products["b193fba741cd646a9c0"] = "blue"
local pop = {}
for k,v in pairs(products) do
pop[v] = (pop[v] or 0) + 1
end
-- if you need to sort by sales then:
local pop_s = {}
for k,v in pairs(pop) do
pop_s[#pop_s+1] = { item=k, sales=v}
end
table.sort(pop_s, function (a,b) return a.sales>b.sales end)
for k,v in pairs(pop_s) do
print(v.item,v.sales)
end
结果:
blue 3
red 2
green 1
关于LUA - 表中最常见的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75121895/