I have an array of allMenuItems as below, which I am trying to filter from an array of Id's. How is this achievable in Swift? I have some understanding of higher order functions, but so far I've been unable to filter this successfully. Any pointers on how this could be achieved would be welcome, thanks.
struct MenuItems {
var id: String
var name: String
init() {
self.id = ""
self.name = ""
}
}
var m1 = MenuItems()
m1.id = "1"
m1.name = "Name 1"
var m2 = MenuItems()
m2.id = "2"
m2.name = "Name 2"
var m3 = MenuItems()
m3.id = "3"
m3.name = "Name 3"
var allMenuItems: [MenuItems] = [m1, m2, m3] // [{id "1", name "Name 1"}, {id "2", name "Name 2"}, {id "3", name "Name 3"}]
var anArrayOfIds: [String] = ["1", "3"]
The filtered output would be:
var filteredMenuItems: [MenuItems] = [m1, m3] // [{id "1", name "Name 1"}, {id "3", name "Name 3"}]
Any suggestions?
var id: String,self.id = "", This is really bad practice in Swift. Don't add mutability where it's not needed, and don't use non-sensical defaults (a name of"")