有没有一种简单的方法可以从快速数组中删除每个第n个元素。例如,在下面的数组中:
thisArray = [2.0, 4.0, 3.0, 1.0, 4.5, 3.3, 1.2, 3.6, 10.3, 4.4, 2.0, 13.0]
Run Code Online (Sandbox Code Playgroud)
如果n = 3和从第一个元素开始计数想返回:
returnThis = [2.0, 4.0, 1.0, 4.5, 1.2, 3.6, 4.4, 2.0]
Run Code Online (Sandbox Code Playgroud)
// swift 4.1:
thisArray.enumerated().compactMap { index, element in index % 3 == 2 ? nil : element }
Run Code Online (Sandbox Code Playgroud)
.enumerated()附加指标.compactMap来通过返回来过滤索引2、5、8,...处的项目nil,并通过返回just 来除去其余部分的索引element。(如果您使用的是Swift 4.0或更低版本,请使用.flatMap代替.compactMap。该.compactMap方法由SE-0187在Swift 4.1中引入)
(如果您坚持使用Swift 2,请使用.enumerate()代替.enumerated()。)