目前我们有2个阵列:
fileprivate var totalDrinksArray: [CocktailModel] = []
fileprivate var currentDrinksArray: [CocktailModel] = []
我要做的是获取totalDrinksArray
的前两个对象,并将它们添加到currentDrinksArray
。按下按钮后,下一个2饮料将从totalDrinksArray
添加到currentDrinksArray
(总共4杯饮料),依此类推。
答案 0 :(得分:0)
你可以"添加"阵列在一起:
currentDrinksArray += totalDrinksArray[0...1]
应该有用。
你的问题不太清楚,但如果你想"添加下两个" (第3和第4):
currentDrinksArray += totalDrinksArray[2...3]
答案 1 :(得分:0)
如果没有足够的元素,可以使用Array方法func prefix(_ maxLength: Int)
返回整个数组的切片(最多n个元素)或更少,并将内容附加到当前数组或将其插入所需数组指数:
currentDrinksArray.append(contentsOf: totalDrinksArray.prefix(2))
或者,如果您想将它们插入数组的开头:
currentDrinksArray.insert(contentsOf: totalDrinksArray.prefix(2), at: 0)
答案 2 :(得分:0)
最简单的安全解决方案IMO:
var currentIndex = 0
func addDrinks() {
if(currentIndex + 2 >= totalDrinksArray.count) {
currentDrinksArray += totalDrinksArray[currentIndex...]
}
else {
currentDrinksArray += totalDrinksArray[currentIndex..<(currentIndex + 2)]
}
currentIndex += 2
}