如果在swift中创建了两个数组,就像这样:

var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]

如何将它们合并为[1,2,3,4,5,6]?


当前回答

var arrayOne = [1,2,3]
var arrayTwo = [4,5,6]

如果你想要的结果是:[1,2,3,[4,5,6]]

arrayOne.append(arrayTwo)

上面的代码将arrayOne转换为单个元素,并将其添加到arrayTwo的末尾。

如果你想要的结果是:[1,2,3,4,5,6],那么,

arrayOne.append(contentsOf: arrayTwo)

上面的代码将arrayOne的所有元素添加到arrayTwo的末尾。

谢谢。

其他回答

斯威夫特3.0

通过使用加法运算符(+)将两个类型兼容的现有数组相加,可以创建一个新数组。新数组的类型是从你相加的两个数组的类型推断出来的,

let arr0 = Array(repeating: 1, count: 3) // [1, 1, 1]
let arr1 = Array(repeating: 2, count: 6)//[2, 2, 2, 2, 2, 2]
let arr2 = arr0 + arr1 //[1, 1, 1, 2, 2, 2, 2, 2, 2]

这是上述代码的正确结果。

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]

这是合并两个数组的最短方法。

 var array1 = [1,2,3]
 let array2 = [4,5,6]

连接/合并他们

array1 += array2
New value of array1 is [1,2,3,4,5,6]

不同数据类型的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 arrayOne = [1,2,3]
var arrayTwo = [4,5,6]

如果你想要的结果是:[1,2,3,[4,5,6]]

arrayOne.append(arrayTwo)

上面的代码将arrayOne转换为单个元素,并将其添加到arrayTwo的末尾。

如果你想要的结果是:[1,2,3,4,5,6],那么,

arrayOne.append(contentsOf: arrayTwo)

上面的代码将arrayOne的所有元素添加到arrayTwo的末尾。

谢谢。