- Welcome to the Kancolle Wiki!
- If you have any questions regarding site content, account registration, etc., please visit the KanColle Wiki Discord
Difference between revisions of "Module:Core"
Jump to navigation
Jump to search
m |
|||
Line 12: | Line 12: | ||
end | end | ||
return m[f](m, unpack(args)) | return m[f](m, unpack(args)) | ||
+ | end | ||
+ | |||
+ | function Utils.find(tbl, v_, k_) | ||
+ | for _, v in pairs(tbl) do | ||
+ | if k_ and v[k_] == v_ or not k_ and v == v_ then | ||
+ | return true | ||
+ | end | ||
+ | end | ||
+ | return false | ||
+ | end | ||
+ | |||
+ | function Utils.map(tbl, fn) | ||
+ | local result = {} | ||
+ | for i, v in pairs(tbl) do | ||
+ | result[i] = fn(v) | ||
+ | end | ||
+ | return result | ||
+ | end | ||
+ | |||
+ | function Utils.filter(tbl, pred) | ||
+ | local result = {} | ||
+ | for i, v in pairs(tbl) do | ||
+ | if pred(v) then | ||
+ | result[i] = v | ||
+ | end | ||
+ | end | ||
+ | return result | ||
end | end | ||
return Utils | return Utils |
Revision as of 10:57, 14 January 2016
Documentation for this module may be created at Module:Core/doc
local Utils = {}
function Utils.method(frame)
local m = require("Module:" .. frame.args[1])
local f = frame.args[2]
local args = {}
for k, v in pairs(frame.args) do
if type(k) == "number" and k >= 3 and type(v) == "string" then
table.insert(args, v)
end
end
return m[f](m, unpack(args))
end
function Utils.find(tbl, v_, k_)
for _, v in pairs(tbl) do
if k_ and v[k_] == v_ or not k_ and v == v_ then
return true
end
end
return false
end
function Utils.map(tbl, fn)
local result = {}
for i, v in pairs(tbl) do
result[i] = fn(v)
end
return result
end
function Utils.filter(tbl, pred)
local result = {}
for i, v in pairs(tbl) do
if pred(v) then
result[i] = v
end
end
return result
end
return Utils