【问题标题】:Lua Check for Value Against Array ElementsLua 检查数组元素的值
【发布时间】:2014-05-21 17:29:28
【问题描述】:

尝试自学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

【问题讨论】:

标签: arrays lua lua-table


【解决方案1】:

这是您编写的对 Lua 数组友好的代码:

valueToCheckFor = 35

sampleArray = {}
for i=30, 49  do
    -- add to end of array
    sampleArray[#sampleArray+1] = i + 1
    print(i+1)
end

-- check each value in array
for k = 1, #sampleArray do
    if valueToCheckFor == sampleArray[k] then
        print(valueToCheckFor .. " is in the array.")
    else
        print(valueToCheckFor .. " is not in the array.")
    end
end

【讨论】:

  • @babyy on SO 人们的目标是始终备份他们的陈述,这就是我们互相学习的方式。事实是,我认为上述解决方案没有任何问题,除了作者应该解释出了什么问题(其他答案已经做了,但他们没有提供修复)。
【解决方案2】:

sampleArray不是一个序列,因为它不是从1开始的,所以#不能用在它上面。见http://www.lua.org/manual/5.2/manual.html#3.4.6

【讨论】:

    【解决方案3】:

    #sampleArray return 0 因为你的数组不是由1启动的

    数组部分是每个以数字 1 开头的键和 增加直到第一个值为 nil

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-24
      • 2017-02-09
      • 1970-01-01
      • 2015-11-17
      • 2018-11-21
      • 2015-01-02
      • 2023-03-27
      相关资源
      最近更新 更多