.../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  |  | }  |