2017-07-04 36 views
1

我想將源表的內容複製到目的表,覆蓋相同的密鑰並保留不同的密鑰不變。我搞砸了一些事情,但無法弄清楚。有人能幫助我嗎?從表a到表b複製瓦爾斯保留b的現有密鑰

local source = { 
    version = 1, 
    nest = { 
    a = 5, 
    b = 1, 
    c = 0 
    }, 
} 

local dest = { 
    version = 0, 
    doesNotChange = 9, 
    nest = { 
    a = 0, 
    b = 0, 
    c = 0, 
    d = "does not change" 
    }, 
} 
+0

看看詹姆斯的答案在這裏https://stackoverflow.com/questions/1283388/lua-merge-tables – xpqz

+0

真棒,謝謝。我不相信我自己沒有找到。 – rampagingrabbits

回答

2

您可以使用generic for statement來實現你想要的。

循環將迭代sourceTable中的所有鍵並將相應的值賦值給destinationTable。由於您只索引sourceTable的鍵,您不能覆蓋具有唯一鍵的destinationTable的字段,但可以覆蓋兩個表中存在的字段並添加僅存在於sourceTable中的新字段。

for k,v in pairs(sourceTable) do 

    destinationTable[k] = v 

end 
相關問題