たとえば、配列があるとします。
var myArray = ["Steve", "Bill", "Linus", "Bret"]
そして、後で、配列を取得するために、配列の最後に要素をプッシュ/追加したいと思います。
["Steve", "Bill", "Linus", "Bret", "Tim"]
どの方法を使用すればよいですか?
そして、配列の前に要素を追加したい場合はどうでしょうか?一定の時間シフトはありますか?
たとえば、配列があるとします。
var myArray = ["Steve", "Bill", "Linus", "Bret"]
そして、後で、配列を取得するために、配列の最後に要素をプッシュ/追加したいと思います。
["Steve", "Bill", "Linus", "Bret", "Tim"]
どの方法を使用すればよいですか?
そして、配列の前に要素を追加したい場合はどうでしょうか?一定の時間シフトはありますか?
回答:
以下のようスイフト3/4/5次のように、これが行われます。
配列の最後に新しい要素を追加します。
anArray.append("This String")
配列の最後に別の配列を追加します。
anArray += ["Moar", "Strings"]
anArray.append(contentsOf: ["Moar", "Strings"])
新しい要素を配列に挿入します。
anArray.insert("This String", at: 0)
別の配列の内容を配列に挿入する。
anArray.insert(contentsOf: ["Moar", "Strings"], at: 0)
詳細については、110ページから始まる「The Swift Programming Language」の「Collection Types」の章を参照してください。
splice
insertContentsOf
Swift 2でに名前を変更
必要に応じて、変数やオブジェクトを渡すこともできます。
var str1:String = "John"
var str2:String = "Bob"
var myArray = ["Steve", "Bill", "Linus", "Bret"]
//add to the end of the array with append
myArray.append(str1)
myArray.append(str2)
それらを前面に追加するには:
//use 'insert' instead of append
myArray.insert(str1, atIndex:0)
myArray.insert(str2, atIndex:0)
//Swift 3
myArray.insert(str1, at: 0)
myArray.insert(str2, at: 0)
他の人がすでに述べたように、xCode 6.1以降では '+ ='を使用できなくなりました
.prepend()
機能がないため、先頭に挿入することは良いアプローチのようです
最後に追加するには、+=
演算子を使用します。
myArray += ["Craig"]
myArray += ["Jony", "Eddy"]
その演算子は通常、append(contentsOf:)
メソッドと同等です。(そして、本当に古いSwiftバージョンでは、同じ要素タイプの他のコレクションだけでなく、単一の要素を追加することができました。)
insert(_:at:)
インデックスに挿入するためのものもあります。
たとえば、最初に挿入するための便利な関数が必要な場合はArray
、拡張子を付けてクラスに追加できます。
myArray
タイプのものでありArray
、その後、最初の行が正しくありません。+=
両方の場合はオペレータにのみ使用することができmyArray
、右オペランドがタイプですArray
。
+=
と言うのappend
は正しくありませんが、前者は一時的な配列の作成を含み、オペレーター関数がそれを消費するとすぐに破棄されます。
+ =および+演算子を使用します。
extension Array {
}
func += <V> (inout left: [V], right: V) {
left.append(right)
}
func + <V>(left: Array<V>, right: V) -> Array<V>
{
var map = Array<V>()
for (v) in left {
map.append(v)
}
map.append(right)
return map
}
次に使用します:
var list = [AnyObject]()
list += "hello"
list += ["hello", "world!"]
var list2 = list + "anything"
var copy = left
から追加するcopy.append(right)
だけで十分です。Swiftでは、配列は参照型ではなく値型です。
最初の位置でアイテムを失うことなく配列の先頭に挿入したい場合は、ここに小さな拡張があります
extension Array{
mutating func appendAtBeginning(newItem : Element){
let copy = self
self = []
self.append(newItem)
self.appendContentsOf(copy)
}
}
Swift 4.1およびXcode 9.4.1の場合
オブジェクトを配列に追加するには、基本的に2つの方法があります
let stringOne = "One"
let strigTwo = "Two"
let stringThree = "Three"
var array:[String] = []//If your array is string type
タイプ1)
//To append elements at the end
array.append(stringOne)
array.append(stringThree)
タイプ2)
//To add elements at specific index
array.insert(strigTwo, at: 1)
2つのアレイを追加する場合
var array1 = [1,2,3,4,5]
let array2 = [6,7,8,9]
let array3 = array1+array2
print(array3)
array1.append(contentsOf: array2)
print(array1)
Swiftプログラミング言語の143ページから:
配列のappendメソッドを呼び出すことで、配列の最後に新しい項目を追加できます
または、追加の代入演算子(+ =)を使用して、配列の最後に新しい項目を追加します
抜粋:Apple Inc.「The Swift Programming Language」iBooks。https://itun.es/us/jEUH0.l
あなたは使うことができます
Myarray.insert("Data #\(index)", atIndex: index)
一意のオブジェクトを追加する場合は、配列構造体を展開できます
extension Array where Element: Equatable {
mutating func appendUniqueObject(object: Generator.Element) {
if contains(object) == false {
append(object)
}
}
}
配列がNSArrayの場合、次のように、adding
関数を使用して配列の最後にオブジェクトを追加できます。
Swift 4.2
var myArray: NSArray = []
let firstElement: String = "First element"
let secondElement: String = "Second element"
// Process to add the elements to the array
myArray.adding(firstElement)
myArray.adding(secondElement)
結果:
print(myArray)
// ["First element", "Second element"]
これは非常に簡単な方法です。
例:student = ["Ben"、 "Ivy"、 "Jordell"]
1)配列の最後に単一の要素を追加するには、append(_ :)を使用します
students.append(\ "Maxime" )
2)別の配列または任意の種類のシーケンスをappend(contentsOf :)メソッドに渡して、複数の要素を同時に追加します
students.append(contentsOf: ["Shakia" , "William"])
3)単一の要素に対してinsert(_:at :)メソッドを使用して、配列の中央に新しい要素を追加するには
students.insert("Liam" , at:2 )
4)insert(contentsOf:at :)を使用して別のコレクションまたは配列リテラルから複数の要素を挿入する
students.insert(['Tim','TIM' at: 2 )