2017-12-13 16 views
0

に1つの配列からオブジェクトの範囲を追加します。私は何をしようとしている現在、我々は2つの配列の持っている別の

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

totalDrinksArrayの最初の2つのオブジェクトを取得し、currentDrinksArrayに追加しています。ボタンを押すと、totalDrinksArrayからcurrentDrinksArrayに次の2ドリンクが追加されます(合計4ドリンク)。

+0

注意。 –

答えて

0

あなたは全体のスライスを返しますアレイ法func prefix(_ maxLength: Int)を使用することができます(n個の要素まで)配列以下の十分な要素が存在しない場合は、あなたの現在の配列にコンテンツを追加したり、必要なインデックスでそれを挿入します。

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

それとも、の初めにそれらを挿入したい場合あなたの配列:

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

あなたは配列を一緒に "追加" することができます

currentDrinksArray += totalDrinksArray[0...1] 

は動作するはずです。

あなたの質問とは全く明確ではないが、あなたは(3番目と4番目)、「次の二つを追加」したい場合:

currentDrinksArray += totalDrinksArray[2...3] 
0

最も簡単な安全ソリューション:自分の名前にオブジェクトタイプを追加することをお勧めされていないことを

var currentIndex = 0 
func addDrinks() { 
    if(currentIndex + 2 >= totalDrinksArray.count) { 
     currentDrinksArray += totalDrinksArray[currentIndex...] 
    } 
    else { 
     currentDrinksArray += totalDrinksArray[currentIndex..<(currentIndex + 2)] 
    } 
    currentIndex += 2 
} 
関連する問題