Arrays Swift 3:删除索引未知的数组中的值
我想在我的Shinobi数据网格中实现多次点击。我有一个有数组的网格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来检查数组中是
( ["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"]