Module:Arrays

local p = {}

function p.removeDuplicates(frame) local arg, hash = frame:getParent.args[1], {} arg = string.gsub(arg, " ", "") -- Remove spaces local m, n = mw.text.split(arg, ","), {}

for _, l in ipairs(m) do       if (not hash[l]) then n[#n+1] = l           hash[l] = true end end arg = table.concat(n, ",") return arg end

function p.arrayRemove(frame) local args, hash = frame:getParent.args, {} 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] 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