gpt4 book ai didi

lua - 如何检查一个值是否不在 Lua 表中的任何位置?

转载 作者:行者123 更新时间:2023-12-01 12:06:34 28 4
gpt4 key购买 nike

我是 lua 的新手,所以如果这个问题太基础,请原谅。我想知道是否有一种好方法来检查一个值是否不在 lua 表中。像这样的东西:

if 5 ~= t[1] or 5 ~= t[2] or 5 ~= t[3] ... then end

但不那么愚蠢。

这个

for i,v in ipairs(t) do
if 5 ~= v then
end
end

并没有真正起作用,因为我想检查它是否没有出现在表格中的任何地方,而不是它是否等于任何给定值。

可能到目前为止我能想到的唯一可行的解​​决方案是

check = 0
for i,v in ipairs(t) do
if 5 == v then
check = 1
end
end

if check == 0 then end

但这看起来还是有点麻烦...

非常感谢!

最佳答案

如果你需要检查一个项目是否存在于数组中,你最好保留一个到该数组的 HashMap 。每次检查都遍历整个(或部分)数组显然是无效的。我建议您创建映射,然后才进行检查。示例:

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 的恒定时间内为 map 构建进行一次测试。

关于lua - 如何检查一个值是否不在 Lua 表中的任何位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com