假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后我想将一个元素推/追加到所述数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该使用哪种方法?
那我想在数组的前面添加一个元素呢?是否有固定的时间班次?
假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后我想将一个元素推/追加到所述数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该使用哪种方法?
那我想在数组的前面添加一个元素呢?是否有固定的时间班次?
Answers:
从Swift 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页开始的“ Swift编程语言 ” 的“集合类型”一章中找到。
splice
重命名为insertContentsOf
斯威夫特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
使用extension将其添加到类中。
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中
我们基本上可以通过两种方式将对象添加到Array中
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)
如果要添加两个数组
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)
从The Swift Programming Language的143页开始:
您可以通过调用数组的append方法将新项目添加到数组的末尾
或者,使用加法赋值运算符(+ =)将新项添加到数组的末尾
摘录自:苹果公司“ The Swift Programming Language”。iBooks。https://itun.es/us/jEUH0.l
如果数组是NSArray,则可以使用该adding
函数在数组末尾添加任何对象,如下所示:
斯威夫特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"]
问候,这是一种非常简单的方法!
在Swift 4.2中: 您可以使用
myArray.append("Tim") //To add "Tim" into array
要么
myArray.insert("Tim", at: 0) //Change 0 with specific location
例如:students = [“ 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 )