繁体   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