Lua检查值是否存在于数组元素中

尝试自学 Lua;我已经阅读了有关此事的类似问题,但仍然不明白如何做到这一点。让我困惑的主要是表与数组之间的区别。对于下面的代码,我只想将给定的值与我填充到数组中的值进行比较。但是,出了些问题。谢谢你的时间。

valueToCheckFor = 35

sampleArray = {}
for i=30, 49, 1  do
  sampleArray[i] = i + 1
  print(i)
end

for k = 0, #sampleArray, 1 do
    if valueToCheckFor == k then
        print(valueToCheckFor .. " is in the array.")
    else
        print(valueToCheckFor .. " is not in the array.")
    end
end
点赞
用户107090
用户107090

你的 sampleArray 不是一个“序列”,因为它不是以 1 开头的,所以不能在它上面使用 #。请参考http://www.lua.org/manual/5.2/manual.html#3.4.6

2014-04-08 20:14:00
用户1198482
用户1198482

#sampleArray 返回 0 是因为您的数组不是以 1 开头的。

数组部分是以数字 1 开头并逐渐增加直到出现第一个 nil 值的每个键。

https://stackoverflow.com/a/9613573/1198482

2014-04-08 20:21:24
用户173806
用户173806

以下是适用于 Lua 数组的代码:

valueToCheckFor = 35

sampleArray = {}
for i=30, 49  do
    -- 将元素添加到数组末尾
    sampleArray[#sampleArray+1] = i + 1
    print(i+1)
end

-- 遍历数组中所有元素
for k = 1, #sampleArray do
    if valueToCheckFor == sampleArray[k] then
        print(valueToCheckFor .. " 在数组中存在。")
    else
        print(valueToCheckFor .. " 不在数组中。")
    end
end
2014-04-08 20:23:44