lua 用另一个 array1d 替换 array2d 值

lua replace array2d value with another array1d

我需要帮助,关于如何用另一个 array1d 替换我的 array2d

示例 array2d,我有

role = {{"mike", "30", "1"},
        {"mike", "50", "3"}}

我想用这个数组 1d

替换第三个数组值 "role[...][3]"
role_listname = {
    [1] = "Winner!",
    [2] = "Funnier!",
    [3] = "Crazy!"
}

所以我得到的结果。

1. Winner - 30p
2. Crazy - 50p
Not like
1. Winner - 30p
2. Funnier - 40p

我的代码:

for i = 1, #role do
    role[i][3] = role_listname[i]
    print(i .. ". " .. role[i][3] .. " - " .. role[i][2])
end

我不知道。它不工作,你能告诉我它是如何工作的吗?

你逻辑错了。您正在使用 循环变量 i 作为索引,但您想使用角色中的相应条目 table:

role = {
    {"mike", "30", 1},
    {"mike", "50", 3}
}
role_listname = {
    [1] = "Winner!",
    [2] = "Funnier!",
    [3] = "Crazy!"
}

for i = 1, #role do
    role[i][3] = role_listname[role[i][3]] -- here is the change
    print(i .. ". " .. role[i][3] .. " - " .. role[i][2])
end

请注意,我还将角色 table 中的索引切换为数字。但这并不重要,您可以使用任何键。他们只需要与 role_listname table.

中的相应键匹配