2015-05-09 3 views
0

Как один проверить, если слово не находится в массиве ... Например:Если элемент в массиве Lua

fruits = { 'apple', 'banana' } 
value = "carrot" 
if not value == fruits then 
    print (value .. " is not a fruit") 
end 

или что-то подобное? Я бы предпочел чистый Lua.

+0

К сожалению, я не согласен. «Таблица» содержит значение, немного отличающееся от «array». Потому что для этого вопроса я могу дать два совета, ни один из которых не подходит для таблиц. 1. Если это жесткий код, например config, вы можете сделать это: '({apple = 1, banana = 1}) [значение]'. 2. Если это массив, существует довольно красивый, но неэффективный метод: 'utils.swapKV (array) [value]' –

ответ

1

Прямой путь:

local found = false 
for _, v in ipairs(fruits) do 
    if v == value then 
    found = true 
    break 
    end 
end 

if not found then 
    print (value .. " is not a fruit") 
end