如何检查值是否不在Lua表中的任何位置?
我对lua很陌生,所以如果这个问题太基本,请原谅。我想知道是否有一种好方法可以检查lua表中是否没有值。比如:如何检查值是否不在Lua表中的任何位置?,lua,Lua,我对lua很陌生,所以如果这个问题太基本,请原谅。我想知道是否有一种好方法可以检查lua表中是否没有值。比如: 如果5~=t[1]或5~=t[2]或5~=t[3]。。。然后结束 但不要那么愚蠢 这个 IPAIR(t)do中i、v的 如果5~=v,则 结束 结束 实际上不起作用,因为我想检查它是否显示在表中的任何位置,而不是它是否等于任何给定值 也许到目前为止,我能想到的唯一可行的解决办法是 check=0 对于ipairs(t)do中的i,v 如果5==v,则 检查=1 结束 结束 如果ch
如果5~=t[1]或5~=t[2]或5~=t[3]。。。然后结束
但不要那么愚蠢
这个
IPAIR(t)do中i、v的
如果5~=v,则
结束
结束
实际上不起作用,因为我想检查它是否显示在表中的任何位置,而不是它是否等于任何给定值
也许到目前为止,我能想到的唯一可行的解决办法是
check=0
对于ipairs(t)do中的i,v
如果5==v,则
检查=1
结束
结束
如果check==0,则结束
但这看起来还是有点麻烦
非常感谢 如果您想知道某个值是否在表中,您必须将每个表值与您的值进行比较,直到找到第一个匹配项
for k,v in pairs(myTable) do
if v == searchValue then
print("Found one!")
break
end
end
请记住,ipairs
仅适用于具有连续索引1-n的表。
如果要检查任何表元素,请使用
对如果需要检查数组中是否存在项,最好保留该数组的哈希映射。对于每次检查,遍历整个(或部分)数组显然是无效的。我建议您创建映射,然后再进行检查。例如:
local function array_map(array)
local map = {}
for _, item in ipairs(array) do
map[item] = true
end
return map
end
local array = {1,2,3,4,5,6,7}
local arr_map = array_map(array)
if arr_map[1] then
print("The array has item 1")
end
if not arr_map[10] then
print("Item 10 is not part of the array")
end
这就是在地图构建过程中,在ϑ(1)
+n
恒定时间内获得测试的方式