Question

Trying to teach myself Lua; I've gone through similar questions about this, and I still can't understand how to do this. The main thing that is confusing me is tables vs arrays. For the below code I'm just wanting check a given value against values I've populated into an array. However, something is going wrong. Thank for your time.

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
Was it helpful?

Solution

Here is your code written to be Lua array friendly:

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

OTHER TIPS

You sampleArray is not a sequence because does not begin at 1 and so # cannot be used on it. See http://www.lua.org/manual/5.2/manual.html#3.4.6.

#sampleArray return 0 because your array is not started by 1

The array part is every key that starts with the number 1 and increases up until the first value that is nil

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top