在lua中动态循环遍历表

时间:2015-12-23 07:20:13

标签: object lua

在下面的代码中,我尝试在pathstr和arr之间进行模式匹配。

  

示例 - 根据pathstr“/ sample / find / apples / red”,如果在arr表中找到红色和苹果,那么我将设置   将值标记为true并打破循环。

目前我在循环中有硬编码v [2]。如何避免这种情况并动态检查表

中的值
function ContainsWholeWord(input, word)
    return string.find(input, "%f[%w]" .. word .. "%f[%W]")
end
local pathstr = "/sample/find/fruits/Apple/red"
local flag = false
local arr =
{
  fruits = {Apple={price=10,color=red}},
  vegetables = { Beans={price=10,color=red}}
}
for k, v in pairs(arr) do
    //call ContainsWholeWord function and match pattern of table in pathstr.     
If found, set flag value
        flag = true
        print(flag)
        break
        end
    end

以下是Demo

1 个答案:

答案 0 :(得分:0)

您可以尝试键值:

local arr = {
    apples = { code="a", color="red", amount=5 },
    oranges = { code="o", color="orange", amount=12 },
    pears = { code="p", color="green", amount=7 },
}

然后

ContainsWholeWord(pathstr, v.color)