我有两个数组
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'
的成员答案 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) })