如何在swift中使用removeObjectsInArray

时间:2014-06-24 08:55:01

标签: swift

我有两个数组

var availableIndex: Int[] = [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14]
var answerIndex: Int[] = [1, 3, 10, 8]

我想从availableIndex数组中删除1,3,10,8。我已经看过文档如何使用removeObjectsInArray

实现这一目标
availableIndex.removeObjectsInArray(answerIndex)

但我无法使用该方法,它给了我一个错误。我不知道我的错在哪里。对不起,如果我的英文不好

编辑:

这是错误' Int []'没有名为' removeObjectsInArray'

的成员

2 个答案:

答案 0 :(得分:9)

正确的Swifty方法是

availableIndex = availableIndex.filter { value in
   !answerIndex.contains(value)
}

(将仅使用answerIndex中未包含的值

创建新的过滤数组)

当然,更好的解决方案是将answerIndex转换为Set

removeObjectsInArray仅在Obj-C可变数组(NSMutableArray)上定义。

Obj-C解决方法是将数组直接定义为NSMutableArray

var availableIndex: NSMutableArray = [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14]
var answerIndex: Int[] = [1, 3, 10, 8]

availableIndex.removeObjectsInArray(answerIndex)

答案 1 :(得分:0)

也可以这样做:

availableIndex.removeAll(where: { answerIndex.contains($0) })