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

时间:2018-06-24 03:38:37

标签: dictionary 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()函数中以将它们分开,这样行得通吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

据我所知,您的问题是:

data[items[item[npcName]]]

正在寻找数据[“ Thom”] ...,但是数据表中没有这样的键。您有一个具有“ Thom”值的“名称”键。您可以反转数据表中的名称键和值。 “ Thom” =名称