尝试比较 2 个列表(表)并在新列表中存在但旧列表中不存在的任何值的情况下返回 true。正在努力做到这一点,感谢任何帮助!
必须返回 true 的示例:
Old = orange, apple, pear, mango
New = orange, apple, banana, pear
在本例中,“banana”位于新列表中,但不在旧列表中,因此代码必须返回 true。
注意: 如果旧列表中有一个值不在新列表中,我仍然想返回 false(只要所有新值都存在于旧列表中)列表)。
示例
Old = orange, apple, pear, mango
New = orange, apple, pear
在这种情况下,所有新值都在旧列表中,因此代码必须返回 false。 (我不在乎芒果在旧列表中但不在新列表中)
尝试了 ipairs
的不同变体,但到目前为止还没有成功。
最佳答案
您想要做的是比较集合。集合是一种数据结构,可让您轻松检查某个值是否是该集合的成员。它是一个非常强大的完整编程工具。
local old = {"orange", "apple", "pear", "mango"}
local new = {"orange", "apple", "pear", "banana"}
local old_set = {}
for _, v in pairs(old) do
old_set[v] = true
end
for _, v in pairs(new) do
print(v, old_set[v] ~= true)
end
输出
orange false
apple false
pear false
banana true
关于list - Lua - 如何识别一个列表中的任何值不存在于另一个列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74952613/