lua - 如何检查多个 Lua 表是否包含共同值?
问题描述
我有一张表格,例如:
local someTable = {
idsA = {1, 2, 3, 4},
idsB = {4, 5, 6, 7},
idsC = {4, 8, 9, 10}
}
并且需要检查所有子表中是否存在一个共同的值(在这种情况下 - 4
)。
解决方案
查找所有常见索引是一个简单的交集:
t={a={1,2,3},
b={2,6},
c={2,4,5}}
function intersect(m,n)
local r={}
for x in all(m) do
for y in all(n) do
if (x==y) then
add(r,x)
break
end
end
end
return r
end
function common_idx(t)
local r=nil
for k,v in pairs(t) do
if not r then
r=intersect(v,v)
else
r=intersect(r,v)
end
end
return r
end
-- 2
for k,v in pairs(common_idx(t)) do
print(v)
end
推荐阅读
- java - 如何从一个小型普通 java 创建的服务器打开一个 html 页面?
- python - 给定数据结构读取二进制文件
- python - python将json日期解析为iso标准
- javascript - 如何显示在 AlertBox 中单击的 Div 的 id
- wordpress - wordpress 太多重定向主页
- botframework - Bot Framework Webchat 麦克风语音在 Safari 中不起作用
- python - 1 不是 '1' == True - 基本了解
- string - 递归:将具有最大 ASCII 值的字符移动到第一个索引,将剩余的字符序列进一步移动;
- wordpress - 主菜单未显示在 wordpress 中
- c# - 在 WPF 中指定图像源的正确方法是什么?