【问题标题】:How to sort by increasing order an array of objects based on its properties - Swift如何根据属性对对象数组进行升序排序 - Swift
【发布时间】:2019-12-19 03:50:47
【问题描述】:

我在对对象数组进行排序时遇到了一些问题:

class Genome {

var id: Float?
var won: Float?
var lost: Float?
var drew: Float?

var fitness: Int = Int.random(in: 0...100)

init(id: Float, won: Float, lost: Float, drew: Float) {
    self.id = id
    self.won = won
    self.lost = won
    self.drew = drew
  }
}

这是对象。 我有一个包含 50 个“基因组”对象的数组,我需要使用它的适应度属性对其进行排序。

我已经试过了:

genomes.sorted({ $0.fitness > $1.fitness })

但它没有用。 我该怎么做?

【问题讨论】:

  • 您是否遇到任何错误?

标签: ios arrays swift sorting object


【解决方案1】:

sorted 有一个返回值。您必须声明一个新变量,并且in升序为<

let sortedGenomes = genomes.sorted{ $0.fitness < $1.fitness }

要对genomes 进行就地排序,请使用sort

genomes.sort{ $0.fitness < $1.fitness }

旁注:不要将使用非可选值初始化的属性声明为可选。

【讨论】:

    【解决方案2】:

    斯威夫特 3 和斯威夫特 4 和斯威夫特 5

    这将按升序对您的对象数组进行排序。

    let sortedGenomes = genomes.sorted(by: { $0.fitness < $1.fitness })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      • 2023-04-05
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多