Arrays 以Swift格式制作进度系列数组的简单方法,如1,3,5,

Arrays 以Swift格式制作进度系列数组的简单方法,如1,3,5,,arrays,swift,Arrays,Swift,用渐进式系列制作阵列的最佳方法是什么 1,3,5,。。直到99 为了实现这一点,需要对代码进行哪些修改 let arrayAP = Array(1...99) // 1,2,..99 Swift 3.0 我想这会帮助你 let arrayAP = Array(0...99).filter { $0 % 2 == 1 } print(arrayAP) 最简单的是(Swift 3): let arrayAP = Array(stride(from: 1, to: 100, by: 2))

用渐进式系列制作阵列的最佳方法是什么

1,3,5,。。直到99

为了实现这一点,需要对代码进行哪些修改

 let arrayAP = Array(1...99) // 1,2,..99

Swift 3.0

我想这会帮助你

let arrayAP = Array(0...99).filter { $0 % 2 == 1 }

print(arrayAP)
最简单的是(Swift 3)

let arrayAP = Array(stride(from: 1, to: 100, by: 2))
let arrayAP = Array(1...99).filter({$0 % 2 == 1})

它可以用许多不同的方法来完成。我更喜欢这种方法,因为我们不需要创建一个数组,然后用这种方法再次过滤它。

来自@adev的答案很好,而且效果很好。这里是另一种可能在其他情况下有用的方法

对于Swift 3和4

let arrayAP = Array(stride(from: 1, to: 100, by: 2))
let arrayAP = Array(1...99).filter({$0 % 2 == 1})
奖金

对于筛选,区别在于Swift 4,
filter
能够返回原始类型的新对象。比如说,

Swift 3

// Types of array1 and array1 must be Array
let array1: Array = Set(1...99).filter({$0 % 2 == 1}) // Will compile
let array2: Set = Set(1...99).filter({$0 % 2 == 1}) // Will fail
Swift 4

// Types of array1 and array2 are not necessary to be Array
let array1: Array = Set(1...99).filter({$0 % 2 == 1}) // Will compile
let array2: Set = Set(1...99).filter({$0 % 2 == 1}) // Will compile

如果您打印此文件,您将得到如下输出:
[1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,79,81,83,85,89,91,93,95,97,99]
作为一个可爱的小可读性奖励,我喜欢这样做:
跨步(从:1到:100,由:+2)
True,使其更具可读性。但我也注意到,如果我们在by字段中使用“+”,它也会将数组的类型更改为
Array
。如果它现在是“2”,它将是
数组
。这就是在我的操场上发生的事情。有趣!我想我只在使用Double时使用了stride。您可以将其更改为
数组(0…99)。过滤器{$0%2==1}
。您可以使用
filter
而不是
flatMap
。这是一种浪费,因为它会进行不必要的中间数组分配,并且会额外通过array@adev是的,这种方法也很简单。这是一个类似的问题,不完全是一个重复的问题。这个问题的答案就像
Array(0..10)
@adev一样简单,这个问题还说“有一个特定的步骤”。他们的示例恰好有一个步骤1。Moritz的回答涵盖了
step!=1
。你的答案也包含在这个答案中,因此整个问题都是重复的。@Keiwan,搜索这个问题的人不可能发现这个问题是重复的。这样的话,可能会有很多问题,这些问题可以被认为是彼此的一个变体,一些答案可能已经超出了问题的范围,回答了所有的变体。这并不意味着有人在搜索这样一个精确的问题时会重复这个问题。@adev如果我能在一分钟内找到这个问题,怎么可能找不到呢?如果这个问题至少是另一个问题的变体,你可能会有一个观点,但事实并非如此——这是一个完全重复的问题。如果您能指出这两个问题之间的任何差异,我将不胜感激。最后,如果一个问题是另一个问题的子集,并且可以用现有答案的子集来回答,则应根据SO标准将其作为副本关闭。@Keiwan,我不同意,该问题要求获得
[0,1,2,3,4,5,6,7,8,9,10]
的解决方案,间隔为
数组(0..10)
。在这种情况下,它不起作用。我不知道是什么使你困惑。如果我在SO中搜索一个问题的副本,我相信大多数时候我也能在一分钟内找到其他一些变体。