.../Source/Extensions/Array+removeAtIndexes.swift
Line | Count | Source |
1 | | // |
2 | | // Array+removeAtIndexes.swift |
3 | | // CutBox |
4 | | // |
5 | | // Created by Jason Milkins on 29/4/18. |
6 | | // Copyright © 2018-2023 ocodo. All rights reserved. |
7 | | // |
8 | | |
9 | | import Foundation |
10 | | |
11 | | extension Array { |
12 | 3 | mutating func removeAtIndexes(indexes: IndexSet) { |
13 | 3 | var idx: Index? = indexes.last |
14 | 8 | while idx != nil { |
15 | 5 | // implicit guard so we can safely force unwrap |
16 | 5 | self.remove(at: idx!) |
17 | 5 | idx = indexes.integerLessThan(idx!) |
18 | 5 | } |
19 | 3 | } |
20 | | } |
21 | | |
22 | | extension Array where Element == [String: String] { |
23 | 4 | mutating func removeAll(protectFavorites: Bool) { |
24 | 4 | if protectFavorites { |
25 | 4 | let favorites: [[String: String]] = self.filter { $0["favorite"] == "favorite" } |
26 | 1 | self.removeAll() |
27 | 1 | self.append(contentsOf: favorites) |
28 | 4 | } else { |
29 | 3 | self.removeAll() |
30 | 4 | } |
31 | 4 | } |
32 | | } |