如何从swift数组中删除多个项目?

时间:2016-06-23 21:41:18

标签: swift xcode swift3 swift2

例如我有一个数组

var array = [1, 2, 3, 4]

我想删除索引1处的项目,然后删除索引3"让它处于for循环中#34;。

但是删除索引1处的项目会将索引3处的项目移动到索引2,从而弄乱第二次删除。

有什么建议吗?

3 个答案:

答案 0 :(得分:22)

给出你的阵列

var numbers = [1, 2, 3, 4]

和要删除的Set个索引

let indexesToRemove: Set = [1, 3]
  

您想要删除值“2”和“4”。

只需写下

numbers = numbers
    .enumerated()
    .filter { !indexesToRemove.contains($0.offset) }
    .map { $0.element }

<强>结果

print(numbers) // [1, 3]

答案 1 :(得分:9)

很简单。从最后删除项目。

首先删除3,然后删除1

答案 2 :(得分:0)

Swift 3:使用swift闭包执行相同的操作。

如果你的数组是

RemoteSigned

和您要删除的索引

-ExecutionPolicy Bypass
  

打印(数字)// [0,1,3,5]

斯威夫特3: 这与JSON Object(字典)

的操作相同
var numbers = [0, 1, 2, 3, 4, 5]
  

[[“char”:“Z”],[“char”:“W”],[“char”:“U”],[“name”:“T”],[“name”:   “S”]]