Удаление всех словарей с заданным ключом
let input = [
[
"Key 1" : "Value 1",
"Key 2" : "Value 2",
],
[
"Key 1" : "Value 1",
"Key 2" : "Value 2",
],
[
"Key 1" : "Value 1",
"Key 2" : "Value 2",
"Key 3" : "Value 3",
],
]
let keyToRemove = "Key 3"
//keep dicts only if their value for keyToRemove is nil (meaning key doesn't exist)
let result = input.filter{ $0[keyToRemove] == nil }
print("Input:\n")
dump(input)
print("\n\nAfter removing all dicts which have the key \"\(keyToRemove)\":\n")
dump(result)
Вы можете увидеть этот код в действии here.
Удаление только первый словарь с заданным ключом
var result = input
//keep dicts only if their value for keyToRemove is nil (meaning key doesn't exist)
for (index, dict) in result.enumerate() {
if (dict[keyToRemove] != nil) { result.removeAtIndex(index) }
}
print("Input:\n")
dump(input)
print("\n\nAfter removing all dicts which have the key \"\(keyToRemove)\":\n")
dump(result)
Вы можете увидеть этот код в действии here.
Что вы подразумеваете под «Я хотел бы удалить словарь с определенным ключом»? Если у вас есть массив из 3 словарей, а у 2 из них есть ключ 'foo', вы хотите, чтобы все они были удалены? Только первый? – Alexander
@AMomchilov Я хочу удалить словарь с помощью специального ключа «foo», поскольку я знаю, что все ключи в массиве словарей являются уникальными ключами. – askaale