Arrays Swift 3:删除索引未知的数组中的值

Arrays Swift 3:删除索引未知的数组中的值,arrays,swift,Arrays,Swift,我想在我的Shinobi数据网格中实现多次点击。我有一个有数组的网格 ( ["1", "32", and more] ) 如果单击网格,我会将其放入新数组self.arrayNr.append(currNr) 但是我想检查并删除arrayNr中是否已经存在currenr,它将从arrayNr中删除 我是新手,正在使用Swift 3。我读了一些关于我的问题,像和,但它不起作用。我认为Swift 2在处理字符串方面比Swift 3简单。任何建议或答案对我都有帮助?您可以使用索引(of来检查数组中是

我想在我的Shinobi数据网格中实现多次点击。我有一个有数组的网格

( ["1", "32", and more] )
如果单击网格,我会将其放入新数组
self.arrayNr.append(currNr)

但是我想检查并删除
arrayNr
中是否已经存在
currenr
,它将从
arrayNr
中删除

我是新手,正在使用Swift 3。我读了一些关于我的问题,像和,但它不起作用。我认为Swift 2在处理
字符串方面比Swift 3简单。任何建议或答案对我都有帮助?

您可以使用
索引(of
来检查数组中是否存在
currenr
。(类必须符合协议)


假设您有一个字符串数组,即键入
[string]
。现在您希望删除一个字符串(如果它存在)。因此,您只需按这一行代码筛选数组

stringArray= stringArray.filter(){$0 != "theValueThatYouDontWant"}
例如,您有这样的数组,并且希望删除“1”

就叫

array = array.filter(){$0 != "1"}

长期解决方案

sampleArray
在退出循环之前,对自身进行迭代,并删除要查找的值(如果该值存在)

var sampleArray = ["Hello", "World", "1", "Again", "5"]
let valueToCheck = "World"

for (index, value) in sampleArray.enumerated() {
    if value == valueToCheck && sampleArray.contains(valueToCheck) {
        sampleArray.remove(at: index)
        break
    }
}

print(sampleArray) // Returns ["Hello", "1", "Again", "5"]
短解决方案

sampleArray
返回一个数组,该数组包含不等于要检查的值的所有值

var sampleArray = ["Hello", "World", "1", "Again", "5"]
let valueToCheck = "World"

sampleArray = sampleArray.filter { $0 != valueToCheck }

print(sampleArray) // Returns ["Hello", "1", "Again", "5"]

谢谢你的建议,但是这里没有关于
index(of:)
的参数。应该是什么?再看看我的例子,你会看到它是currenr字符串的索引。
index(of:)
只存在于符合
equalable
的对象中。哦,我知道了,我用[Any]声明数组,我将它改为[string]1.很好,谢谢
var sampleArray = ["Hello", "World", "1", "Again", "5"]
let valueToCheck = "World"

for (index, value) in sampleArray.enumerated() {
    if value == valueToCheck && sampleArray.contains(valueToCheck) {
        sampleArray.remove(at: index)
        break
    }
}

print(sampleArray) // Returns ["Hello", "1", "Again", "5"]
var sampleArray = ["Hello", "World", "1", "Again", "5"]
let valueToCheck = "World"

sampleArray = sampleArray.filter { $0 != valueToCheck }

print(sampleArray) // Returns ["Hello", "1", "Again", "5"]