更新嵌套数组元素(如果存在)

时间:2018-10-26 12:07:28

标签: arrays swift

以下代码非常有用,因为它可以发现嵌套数组中是否有元素。如果这样的元素不存在,则代码将其插入。

我正在努力寻找一种删除现有元素(如果已经存在)的方法,因此我可以插入它的更新版本。

也许有更好的方法来更新现有元素而不先删除它?

if insertSolution.contains(where: { $0.resourceName == name }) {
  //remove $0
  //insert new resource
  print("Already inserted. Update needed!")
} else {
  insertSolution.append(solution);
  print("New solution. Insert needed!");
}

1 个答案:

答案 0 :(得分:1)

您可以确定现有元素的 index 并进行更新 元素(如果存在),否则追加:

if let idx = insertSolution.firstIndex(where: { $0.resourceName == name }) {
    // Update existing element:
    insertSolution[idx] = ...
} else {
    // Append new element:
    insertSolution.append(...);
}