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

sf6xfgos  于 2023-06-04  发布在  Swift
关注(0)|答案(3)|浏览(434)

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

( ["1", "32", and more] )

如果我单击网格,我会将其放入新的Array self.arrayNr.append(currNr)中。
但是我想检查并删除如果currNr已经存在于arrayNr中,它将从arrayNr中删除。
我是新手,使用Swift 3。我读了一些关于我的问题,如thisthis,但它不工作。我认为Swift 2在处理String方面比Swift 3更简单。

8dtrkrch

8dtrkrch1#

您可以使用index(of来检查currNr是否存在于数组中。(类必须符合Equatable协议)

var arrayNr = ["1", "32", "100"]
let currNr = "32"
// Check to remove the existing element
if let index = arrayNr.index(of: currNr) {
    arrayNr.remove(at: index)
}
arrayNr.append(currNr)
zujrkrfu

zujrkrfu2#

假设你有一个字符串数组,即类型[String]。现在,如果字符串存在,则要删除该字符串。所以你只需要用这一行代码来过滤数组

stringArray= stringArray.filter(){$0 != "theValueThatYouDontWant"}

例如,你有一个这样的数组,你想移除“1”

let array = ["1", "32"]

只需拨打

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

gr8qqesn3#

长解

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"]

相关问题