相关疑难解决方法(0)

如何在Swift中连接或合并数组?

如果在swift中创建了两个数组,如下所示:

var a:[CGFloat] = [1, 2, 3]
var b:[CGFloat] = [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

他们如何合并[1, 2, 3, 4, 5, 6]

arrays merge append ios swift

377
推荐指数
9
解决办法
20万
查看次数

如何在Swift中快速展平数组?

我想转此:

let x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

进入这个:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

非常优雅.

当然,最直接的方式是

var y = [Int]()
x.forEach { y.appendContentsOf($0) }
Run Code Online (Sandbox Code Playgroud)

但这使得生成的数组变得可变,这是不必要的.我不喜欢这样.

我试过用reduce:

let y = x.reduce([Int]()) { (array, ints) -> [Int] in
    array.appendContentsOf(ints)
    return array
}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨这array是不可变的,所以我不能调用变异方法appendContentsOf.

因此,我添加了一些东西:

let y = x.reduce([Int]()) { (array, ints) -> [Int] in
    var newArr = array
    newArr.appendContentsOf(ints)
    return newArr
}
Run Code Online (Sandbox Code Playgroud)

这简直太糟糕了.我有一种本能,这不是很好的.

如何比上述方法更加平滑地展平阵列?单线会很好.

arrays flatten swift

14
推荐指数
2
解决办法
5794
查看次数

在Swift中展平多个数组的所有值

我有一个整数数组字典,如下所示:

let numbers = [1: [2, 3], 4: [5, 6, 7], 8: [9]]

我真正想要的是所有值(它们本身就是数组)的单个扁平数组,如下所示:

[2, 3, 5, 6, 7, 9]

现在,我已经能够致电numbers.values.array:

[[2, 3], [5, 6, 7], [9]]

但我正在寻找的是将这一步进一步合并,将它们弄平.

Swift(1.1或1.2)是否为此提供了便利方法?

arrays swift

5
推荐指数
3
解决办法
2009
查看次数

拼合[Any] Array Swift

使用这个堆栈溢出问题,我有以下代码。

let numbers = [1,[2,3]] as [Any]
var flattened = numbers.flatMap { $0 }
print(flattened) // [1, [2, 3]]
Run Code Online (Sandbox Code Playgroud)

取而代之的扁平设定为[1, [2, 3]]我希望它是[1, 2, 3]

在Swift中最简单/最干净的方法是什么?

arrays swift

3
推荐指数
3
解决办法
632
查看次数

Swift 4-FlatMap无法展平数组

我正在和Swift玩耍,但遇到了一些麻烦flatMap。我已经看到了这个 StackOverflow问题,该问题描述了如何使用来展平数组的数组flatMap,但是当我在操场上重现相同的代码时,它并不会展平该数组。如果有人可以提供一些有关此处发生的情况的见解,我将不胜感激。

这是代码和结果的屏幕截图:在此处输入图片说明

arrays flatmap swift swift4

1
推荐指数
1
解决办法
488
查看次数

标签 统计

arrays ×5

swift ×5

append ×1

flatmap ×1

flatten ×1

ios ×1

merge ×1

swift4 ×1