的陣列I具有元組的數組:減少元組
var baseItems = [(item: Item, amount: Float)]
在該陣列中可以存在2個或更多相同Item
不同amount
。我想減少這baseItems
陣列只包含獨特的Item
s和加起來amount
。
下面是一個例子:
baseItems = [(Wood, amount: 10), (Metal, amount: 5), (Wood, amount: 3)]
應轉變爲:
baseItems = [(Wood, amount: 13), (Metal, amount: 5)]
謝謝你的回答。這可能是我正在尋找的。雖然我無法實現它,因爲它不是[(String,Int)]而是[(Item,Float)]。我得到的錯誤無法調用類型'Set <_>'的初始值設定項,其類型爲'([Item])'的參數列表。我設法得到一個過濾的[(id:Int,amount:Float)]數組,並且有一個方法從一個id到達適當的Item,但是我覺得這更像是一件俗事 – smnk
是的,我改變了它是一個字符串,因此測試更容易。你必須改變你的類'Item'以符合'Hashable'協議,所以它可以和'Set'一起使用。看到我更新的答案。 – Eendje