Модуль:Arrays

Материал из Викимультии — энциклопедии мультипликации
Перейти к навигации Перейти к поиску


Документация
local p = {}
 
function p.removeDuplicates(frame)
	local arg, hash = frame:getParent().args[1], {}
	local m, n = mw.text.split(arg, ","), {}
 
	for _, l in ipairs(m) do
	    l = mw.text.trim(l)
        if (not hash[l]) then
            n[#n+1] = l
            hash[l] = true
        end
    end
 
    arg = table.concat(n, ", ")
	return arg
end
 
function p.removeCustom(frame)
	local args, hash = frame:getParent().args, {}
	if (args[1] == nil) then return '' end
	local t = mw.text.split(args[1], ",")
	local s = mw.text.split(args[2], ",")
 
    for i, v in ipairs(t) do
        t[i] = mw.text.trim(v)
        hash[t[i]] = true
    end
 
    if args[3] == '' then args[3] = false end
    if args[3] and not hash[args[3]] then return table.concat(t, ", ") end
 
    for i, v in ipairs(s) do
        s[i] = mw.text.trim(v)
    end
 
	for j = #s, 1, -1 do
    	for i = #t, 1, -1 do
            if t[i] == s[j] then
                table.remove(t, i)
            end 
        end 
    end
    return table.concat(t, ", ")
end
 
return p