Swift 3:删除具有未知索引的Array中的值

时间:2017-07-10 01:52:28

标签: arrays swift

我想在我的Shinobi DataGrid中实现多次单击。我有一个有阵列的网格

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

如果我点击网格,我将其放入新数组self.arrayNr.append(currNr)

但我想检查并删除currNr arrayNr中是否已存在arrayNr它将从String删除。

我是新手并使用Swift 3.我读了一些关于我的问题的问题,例如thisthis,但它无效。我认为Swift 2在处理{{1}}时比Swift 3简单。任何sugesstion或答案对我有帮助吗?

3 个答案:

答案 0 :(得分:2)

您可以使用 os.chdir('/Users/username/Documents/python/test/') datadax=loadtxt('py_dax.txt') datashaxn=loadtxt('py_shaxn.txt') datashaxw=loadtxt('py_shaxw.txt') 检查数组中是否存在index(of。 (该类必须符合Equatable协议)

currNr

答案 1 :(得分:1)

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

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

例如,你有这样的数组,你想删除" 1"

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

只需致电

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

答案 2 :(得分: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"]