【发布时间】:2021-12-21 11:04:25
【问题描述】:
我有一个数组,里面有不同的元素,它看起来像这样:
Vehicles = [ Auto(brand: "bmw", color: "red"),
Auto(brand: "mazda", color: "red"),
Auto(brand: "alfa romeo", color: "red"),
Bike(brand: "suzuki", color: "blue"),
Bike(brand: "yamaha", color: "black") ]
在这种情况下,我需要根据“颜色”来反转它,所以数组会是这样的:
Vehicles = [ Auto(brand: "alfa romeo", color: "red"),
Auto(brand: "mazda", color: "red"),
Auto(brand: "bmw", color: "red"),
Bike(brand: "suzuki", color: "blue"),
Bike(brand: "yamaha", color: "black") ]
具有相同颜色的元素相互跟随,例如“子组”,我需要反转每个子组。即:[a,b,c,d,e,f,g,h,i],如果 a,b,c 为颜色 1,d,e,f 颜色为 2,g,h,i 为颜色 3,就像 [(a,b,c), (d,e,f), (g,h,i)],顺序应该是 [(c,b,a), (f, e, d), ( i,h,g)] 等 [c,b,a,f,e,d,i,h,g]
【问题讨论】:
-
反向?你的意思是按颜色排序?
Vehicles.sort { $0.color > $1.color }? -
如果 yamaha 也是蓝色的,你是不是也要反转 yamaha 和 suzuki?
-
@Sulthan Sort 我猜但我需要保持相同的顺序但颠倒,如果 x y z 车是红色的,则顺序应该是那些红色车的 z y x
-
@Sweeper 是的,在这种情况下也是如此
-
因此您可能希望同时对它们进行排序?是按品牌升序还是按颜色降序?
Vehicles.sort { $0.brand == $1.brand ? $0.color > $1.color : $0.brand < $1.brand }