如何在Swift中从数组中删除特定的字符串值?[副本]

6jygbczu  于 2023-05-05  发布在  Swift
关注(0)|答案(1)|浏览(228)

此问题已在此处有答案

Removing duplicate elements from an array in Swift(49答案)
11天前关闭
我想从包含重复项的数组中删除特定的字符串值。

let array = ["orange", "apple", "orange", "peach"]

有没有办法从数组中删除橙子SECOND值?
我举个例子:

var array = [String]()
var fruit: String!

@IBAction func likeButtonAction(_ sender: UIButton) {

  if array.contains(fruit) {
   array.remove(at: array.firstIndex(of: fruit)!)
  } else {
  array.append(fruit)
  }

UserDefaults.standard.set(array, forKey: "fruit")

}
6pp0gazn

6pp0gazn1#

更新:

如果您正在使用按钮从水果列表中添加/删除值,并且您正在使用集合。当你点击添加按钮时,首先检查水果是否已经在集合中,如果是,那么就不要添加它。
单击“删除”按钮时,将其从集合中删除。
您可以循环访问在Set中存储唯一值的数组。
对于数组中的每个值,检查Set是否不包含当前项。如果没有,则将其添加到Set和输出数组中。对每个项重复此操作以获取唯一值数组。

func unique<S : Sequence, T : Hashable>(inputArray: S) -> [T] where S.Iterator.Element == T {
    var output = [T]()
    var uniqueValues = Set<T>()
    for fruit in inputArray {
        if !uniqueValues.contains(fruit) {
            output.append(fruit)
            uniqueValues.insert(fruit)
        }
    }
    return output
}

let vals = ["orange", "grape", "strawberry", "strawberry", "apple", "orange", "raspberry"]
let uniqueVals = unique(vals) // ["orange", "grape", "strawberry", "apple", "raspberry"]

相关问题