如何在 Lua 中从一个字典中获取一个值,当这个键是另一个字典中的值时?

我正在编写一些代码,其中我有多个字典用于我的数据。原因是,我有多个核心对象和多个较小的资产,用户必须能够选择较小的资产,并使一些远处的函数以父级的方式运行代码。

其中一个字典的示例:(我正在使用 ROBLOX Lua 5.1,但问题的语法应该是相同的)

local data = {
    character = workspace.Stores.NPCs.Thom,
    name = "Thom", npcId = 9,
    npcDialog = workspace.Stores.NPCs.Thom.Dialog
}
local items = {
    item1 = {
        model = workspace.Stores.Items.Item1.Main,
        npcName = "Thom",
    }
}

这是我的函数:

local function function1(item)
    if not items[item] and data[items[item[npcName]]] then return false end
end

正如您所看到的,我尝试使用另一个字典中的键索引字典。通常这不是问题。

local thisIsAVariable = item[item1[npcName]]

但是我使用上面的方法尝试为在项目字典中的数据索引数据字典。

没有大量的本地变量和杂乱,有没有办法做到这一点?我有一个想法,将冲突的字典引用包装在一个 tostring()函数中以将它们分开-这会起作用吗?

谢谢。

点赞
用户4403144
用户4403144

按照我看到的,你的问题在于:

data[items[item[npcName]]]

正在寻找 data[“Thom”]……但是你的数据表中没有这样一个键。你有一个“name”键,它有一个“Thom”的值。可以在数据表中翻转名称键和值。例如“Thom”=名字。

2018-06-24 06:02:27