全站通知:
模块:FurnitureStatistics
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:FurnitureStatistics/doc创建
local p = {}
function p.keySum(frame)
local obj = p["data"](frame)
local keyCount = 0
for k, v in pairs(obj) do
keyCount = keyCount + 1
end
return keyCount
end
function p.valSum(frame)
local obj = p["data"](frame)
local valueSum = 0
for k, v in pairs(obj) do
valueSum = valueSum + v
end
return valueSum
end
function p.list(frame)
local obj = p["data"](frame)
local formattedParts = {}
for k, v in pairs(obj) do
table.insert(formattedParts, k .. " * " .. v)
end
local newString = table.concat(formattedParts, ", ")
return newString
end
function p.data(frame)
local input = frame.args[1] or '{}'
local data = mw.text.jsonDecode(input)
local obj = {}
for k, v in pairs(data) do
obj[k] = tonumber(v)
end
return obj
end
function p.main(frame)
local input = frame.args[1] or '{}'
local data = mw.text.jsonDecode(input) -- 处理HTML转义字符
local obj = {}
for k, v in pairs(data) do
obj[k] = tonumber(v)
end
-- for key_part in string.gmatch(data, '"[^"]+"%s*:%s*%d+') do
-- local k, v = string.match(key_part, '"([^"]+)"%s*:%s*(%d+)')
-- if k and v then
-- obj[k] = tonumber(v)
-- end
-- end
-- 计算结果
local keyCount = 0
local valueSum = 0
local formattedParts = {}
for k, v in pairs(obj) do
keyCount = keyCount + 1
valueSum = valueSum + v
table.insert(formattedParts, k .. "*" .. v)
end
-- 生成输出
local result = {
"键数量:" .. keyCount,
"值总和:" .. valueSum,
"格式化:" .. table.concat(formattedParts, ", ")
}
-- mw.log(result)
mw.logObject(result)
return table.concat(result, "\n")
end
return p