在lua中动态地循环遍历表格

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

例如-根据 pathstr "/sample/find/apples/red",如果在 arr 表中找到了 red 和 apples,则我将将标志值设置为 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
    //调用 ContainsWholeWord 函数并匹配路径字符串中的表模式。
    如果找到,则设置标志值
        flag = true
        print(flag)
        break
    end
end

这是演示版。

点赞
用户5622901
用户5622901

你可以尝试使用键值对:

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)
2015-12-23 13:54:28