如果在swift中创建了两个数组,就像这样:
var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]
如何将它们合并为[1,2,3,4,5,6]?
如果在swift中创建了两个数组,就像这样:
var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]
如何将它们合并为[1,2,3,4,5,6]?
当前回答
这是合并两个数组的最短方法。
var array1 = [1,2,3]
let array2 = [4,5,6]
连接/合并他们
array1 += array2
New value of array1 is [1,2,3,4,5,6]
其他回答
如果你想在一个特定的索引后面插入第二个数组,你可以这样做(从Swift 2.2开始):
let index = 1
if 0 ... a.count ~= index {
a[index..<index] = b[0..<b.count]
}
print(a) // [1.0, 4.0, 5.0, 6.0, 2.0, 3.0]
Swift 5阵列扩展
extension Array where Element: Sequence {
func joined() -> Array<Element.Element> {
return self.reduce([], +)
}
}
例子:
let array = [[1,2,3], [4,5,6], [7,8,9]]
print(array.joined())
//result: [1, 2, 3, 4, 5, 6, 7, 8, 9]
不同数据类型的Marge数组:
var arrayInt = [Int]()
arrayInt.append(6)
var testArray = ["a",true,3,"b"] as [Any]
testArray.append(someInt)
输出:
["a", true, 3, "b", "hi", 3, [6]]
类似地,使用数组字典可以:
var dict1 = [String:[Int]]()
var dict2 = [String:[Int]]()
dict1["key"] = [1,2,3]
dict2["key"] = [4,5,6]
dict1["key"] = dict1["key"]! + dict2["key"]!
print(dict1["key"]!)
如果“key”匹配,则可以遍历dict1并添加dict2
您可以用+连接数组,构建一个新数组
let c = a + b
print(c) // [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
或者用+=将一个数组附加到另一个数组(或append):
a += b
// Or:
a.append(contentsOf: b) // Swift 3
a.appendContentsOf(b) // Swift 2
a.extend(b) // Swift 1.2
print(a) // [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]