簡體   English   中英

將一系列對象從一個數組添加到另一個數組

[英]add a range of objects from one array to another

當前,我們有2個數組:

  fileprivate var totalDrinksArray: [CocktailModel] = []
  fileprivate var currentDrinksArray: [CocktailModel] = []

我想做的是獲取totalDrinksArray的前兩個對象,並將它們添加到currentDrinksArray 按下按鈕后,接下來的2種飲料將從totalDrinksArray添加到currentDrinksArray (總共4種飲料),依此類推。

您可以將數組“添加”在一起:

currentDrinksArray += totalDrinksArray[0...1]

應該管用。

您的問題不太清楚,但是如果您要“添加下兩個”(第3個和第4個):

currentDrinksArray += totalDrinksArray[2...3]

您可以使用Array方法func prefix(_ maxLength: Int) ,如果沒有足夠的元素,它將返回總數組的一部分(最多n個元素)或更少,並將其內容附加到當前數組中或將其插入所需的數組中指數:

currentDrinksArray.append(contentsOf: totalDrinksArray.prefix(2))

或者,如果您想將它們插入到數組的開頭:

currentDrinksArray.insert(contentsOf: totalDrinksArray.prefix(2), at: 0)

IMO最簡單的安全解決方案:

var currentIndex = 0
func addDrinks() {
    if(currentIndex + 2 >= totalDrinksArray.count) {
        currentDrinksArray += totalDrinksArray[currentIndex...]
    }
    else {
        currentDrinksArray += totalDrinksArray[currentIndex..<(currentIndex + 2)]
    }
    currentIndex += 2
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM