如何在不添加已存在于另一个表中的项目的情况下进行添加?

我正在创建一个允许Lua脚本的游戏服务器。基本上,脚本获取服务器日期并根据该日期选择一个文本文件。每个文本文件都包含一个名称列表。脚本的目的是将玩家重命名为“有趣的”假日名称。

这是我的初始代码,用于填充表并分配名称:

- 从所选假期文件获取名称
local holFile = io.open(filePath .. holiday .. ".txt", "r");
local holidayNames = {}

for line in holFile:lines() do
    table.insert (holidayNames, line);
end

- 在做以上代码之前,我还添加了以下部分,以便用当前名称填充表:
  • 获取当前玩家列表 local currPlayers = io.open(filePath "players.txt", "r"); local currentPlayers = {}

for line in currPlayers:lines() do table.insert (currentPlayers, line); end

```

因此,基本上,当我试图在 holidayNames 中添加项目时,我想先查看它们是否存在于 currentPlayers 中。

点赞
用户12135804
用户12135804

由于 currentPlayers 已经被定义,您需要扫描每行的假日名称以查找匹配项。您可以使用 pairs 来实现:

for line in holFile:lines() do
    for __, name in pairs(currentPlayers) do
        if name ~= line then
            -- skip insertion if it's a match
            table.insert(holidayNames, line)
        end
    end
end
2020-05-13 17:35:11