Ребята как вызвать такой массив по рейтингу сортировку сделать по возрастанию и убываю?


#1

Добрый вечер, дорогие земляки! Пример можете подсказать как в моем случает сделать action sheet по возрастанию и убываю рейтинг.Буду очень благодарен!Вот мой код:

import SwiftUI
        
struct CarViewModel: Codable, Hashable {
            
                var name: String
                var image: String
                var ratings: Int
        }
    

var carRatingMin = [CarViewModel]()

var contents: [Int] = {
    var contents = [Int]()
    for value in 0..<15 {
        contents.append(value)
    }
    return contents
}()



        
struct CarView: View {
           
            func jsonCar() -> [CarViewModel]{
                    let url = Bundle.main.url(forResource: "SampleDesserts", withExtension: "json")!
                    let data = try! Data(contentsOf: url)
                    let decoder = JSONDecoder()
                    let cars = try? decoder.decode([CarViewModel].self, from: data)
                    return cars!
                }
            
            var body: some View {
                NavigationView {
                    List {
                        ForEach(jsonCar(), id: \.self)
                    { item in
                    HStack {
                      CarImage(item.image)
                        VStack(alignment: .leading, spacing: 0) {
                            Text(item.name).padding(5)
                                                HStack {
                            Text("Rating: ").padding(5)
                                ForEach(0..<item.ratings) { _ in
                                      Image(systemName: "star.fill")
                                        .foregroundColor(Color.yellow)
                            }
                              ForEach(item.ratings..<5) { _ in
                                  Image(systemName: "star") .foregroundColor(Color.gray.opacity(0.5))
                            }
                                                
                        }
                                                
                          }
                           }
                            }
                }.navigationBarTitle("Cars")
                    .navigationBarItems(trailing: Button(action: {
                    
                        
                    }, label: {
                        Image(systemName: "star.fill").foregroundColor(.black)
                        
                            
                    }).contextMenu(
                        ContextMenu(menuItems: {
                            Button("по убываю", action: {
                                carRatingMin.reverse()
                                                })
                            Button("по возрастанию", action: {})
                           
                        })
                    )
                    )
                    
               
                
                               }
            }
           
            
        }

        
        
            
        
        
        func CarImage(_ image: String) -> some View {
                                 return Image(image)
        .resizable()
        .clipShape(Circle()) .overlay(Circle().stroke(Color.white, lineWidth: 2)) .padding(2) .overlay(Circle().stroke(Color.black.opacity(0.2))) .shadow(radius: 3)
        .padding(4)
        .frame(width: 72, height: 72) }
        
        
        struct CarList_Previews: PreviewProvider {
              static var previews: some View {
            
              
                    CarView()
                        .previewDevice("iPhone XS")
                   
                
              
              
              }
        }