Отказ от ответственности: это Glua (Lua, используемый модом Гарри)
Мне просто нужно сравнить таблицы между ними и вернуть разницу, как если бы я их подставлял.
TableOne = {thing = "bob", 89 = 1, 654654 = {"hi"}} --Around 3k items like that
TableTwo = {thing = "bob", 654654 = "hi"} --Same, around 3k
function table.GetDifference(t1, t2)
local diff = {}
for k, dat in pairs(t1) do --Loop through the biggest table
if(!table.HasValue(t2, t1[k])) then --Checking if t2 hasn't the value
table.insert(diff, t1[k]) --Insert the value in the difference table
print(t1[k])
end
end
return diff
end
if table.Count(t1) != table.Count(t2) then --Check if amount is equal, in my use I don't need to check if they are exact.
PrintTable(table.GetDifference(t1, t2)) --Print the difference.
end
Моя проблема в том, что при наличии только одного различия между двумя таблицами это возвращает мне более 200 предметов.Единственный предмет, который я добавил, был String.Я пробовал много других функций, подобных этой, но они обычно вызывают ошибку переполнения стека из-за длины таблицы.