当前位置: 首页 > 知识库问答 >
问题:

如何在Swift中按属性值对自定义对象数组进行排序

霍弘厚
2023-03-14

假设我们有一个名为ImageFile的自定义类,该类包含两个属性:

class imageFile  {
    var fileName = String()
    var fileID = Int()
}

其中许多存储在一个阵列中:

var images : Array = []

var aImage = imageFile()
aImage.fileName = "image1.png"
aImage.fileID = 101
images.append(aImage)

aImage = imageFile()
aImage.fileName = "image1.png"
aImage.fileID = 202
images.append(aImage)

如何按“fileID”升序或降序对图像数组进行排序?

共有3个答案

李云
2023-03-14

雨燕3

people = people.sorted(by: { $0.email > $1.email })
陶高扬
2023-03-14

[为Swift 3更新了排序方式(按:)]利用尾随闭包:

images.sorted { $0.fileID < $1.fileID }

您使用的位置

images.sort { $0.fileID < $1.fileID }

如果您要重复执行此操作并更喜欢定义函数,一种方法是:

func sorterForFileIDASC(this:imageFile, that:imageFile) -> Bool {
  return this.fileID < that.fileID
}

然后用作:

images.sort(by: sorterForFileIDASC)
易镜
2023-03-14

首先,将您的Array声明为类型化数组,以便您可以在迭代时调用方法:

var images : [imageFile] = []

然后你可以简单地做:

Swift 2

images.sorted({ $0.fileID > $1.fileID })

Swift 3

images.sorted(by: { $0.fileID > $1.fileID })

上面的示例按降序给出了结果。

 类似资料:
  • 问题内容: 可以说我们有一个名为imageFile的自定义类,该类包含两个属性。 其中很多存储在数组中 问题是:如何按“ fileID” ASC或DESC对图像数组进行排序? 问题答案: 首先,将Array声明为类型化数组,以便在迭代时可以调用方法: 然后,您可以简单地执行以下操作: 迅捷2 迅捷3+ 上面的示例给出了 desc 排序顺序

  • 我试过了,但不起作用,二进制运算符'>'不能应用于两个'double?‘操作数 做这件事最方便快捷的方法是什么?

  • 问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排

  • 问题内容: 我已经使用AJAX获得了以下对象并将它们存储在数组中: 如何仅使用JavaScript 创建一个函数以按属性 升序 或 降序 对对象进行排序? 问题答案: 按价格升序对房屋进行排序: 或在ES6版本之后:

  • 现在如何按照MyClass对象的名称对数组进行排序。

  • 问题内容: 我有一个对象数组,这些对象的属性称为“ CODE”。 如何通过自定义顺序对数组进行排序,例如: 尝试各种方法均未成功。请帮忙。 问题答案: 您可以将函数与函数一起使用。