以下代码非常有用,因为它可以发现嵌套数组中是否有元素。如果这样的元素不存在,则代码将其插入。
我正在努力寻找一种删除现有元素(如果已经存在)的方法,因此我可以插入它的更新版本。
也许有更好的方法来更新现有元素而不先删除它?
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!");
}
答案 0 :(得分:1)
您可以确定现有元素的 index 并进行更新 元素(如果存在),否则追加:
if let idx = insertSolution.firstIndex(where: { $0.resourceName == name }) {
// Update existing element:
insertSolution[idx] = ...
} else {
// Append new element:
insertSolution.append(...);
}