假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后,我想将一个元素推入/追加到数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该用什么方法呢?
如果我想在数组的前面添加一个元素呢?是否存在常数时不变?
假设我有一个数组,例如:
var myArray = ["Steve", "Bill", "Linus", "Bret"]
然后,我想将一个元素推入/追加到数组的末尾,以获得:
["Steve", "Bill", "Linus", "Bret", "Tim"]
我应该用什么方法呢?
如果我想在数组的前面添加一个元素呢?是否存在常数时不变?
当前回答
这是一个小扩展,如果你希望插入在数组的开始,而不失去在第一个位置的项目
extension Array{
mutating func appendAtBeginning(newItem : Element){
let copy = self
self = []
self.append(newItem)
self.appendContentsOf(copy)
}
}
其他回答
从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)
更多信息可以在“Swift编程语言”的“集合类型”一章中找到,从第110页开始。
如果数组是NSArray,你可以使用add函数添加数组末尾的任何对象,如下所示:
斯威夫特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"]
这是一个非常简单的方法,问候!
例子:students = ["Ben", "Ivy", "Jordell"]
1)添加单个元素到数组的末尾,使用append(_:)
学生。阿彭
2)通过将另一个数组或任何类型的序列传递给append(contentsOf:)方法,同时添加多个元素
学生。追加(内容:["Shakia", "William"])
3)对单个元素使用insert(_:at:)方法在数组中间添加新元素
学生。插入(“Liam”,在:2)
4)使用insert(contentsOf:at:)从另一个集合或数组文字插入多个元素
学生。insert(['Tim',' Tim' at: 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开始,你不能再使用'+='
使用+=和+运算符:
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"