struct Home {
var street:String
var number:Int
}
func getHouse() -> [Home] {
var house = [Home]()
let house1 = Home(street: "Jacob Street", number: 26)
house.append(house1)
let house2 = Home(street: "High Road", number: 58)
house.append(house2)
let house3 = Home(street: "Zebra Close", number: 12)
house.append(house3)
return house
}
var houses = [Home]()
houses = getHouse()
houses.sort({$0.street < $1.street })
for i in 0..<houses.count {
print("\(houses[i].street)")
}
我试图在此示例中按街道按字母顺序对它们进行排序,或者如果需要,可能按数字排序。它们似乎仍然按照我的顺序保留,而不是按照我想要的字母顺序排列。
答案 0 :(得分:4)
sort
返回一个新数组,但是你没有对结果做任何事情。你可以做到
let sortedHouses = houses.sort {$0.street < $1.street }
或
houses.sortInPlace {$0.street < $1.street }
答案 1 :(得分:2)
您可以使用sortInPlace()
,
sort()
返回一个新的已排序对象并保持接收器不变。
或者
let sortedHouses = houses.sort {$0.street < $1.street }