我正在使用以下结构编译数据:

struct Nursing {

var leftTime: Double
var rightTime: Double
var submissionTime: Date

}

struct Bottle {

var bottleQuantity: Double
var bottleUnits: String
var submissionTime: Date

}

struct Puree {

var pureeQuantity: Double
var pureeType: String
var pureeUnits: String
var submissionTime: Date

}

然后,我使用应用程序其他位置的数据创建每种类型的数组。

var nursingArray = [Nursing]()
var bottleArray = [Bottle]()
var pureeArray = [Puree]()

然后,我仅对最后一天发生的条目过滤每个数组。

let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: Date())
    var todayBottleArray = bottleArray.filter( { ( $0.submissionTime > yesterday! ) } )
    var todayNursingArray = nursingArray.filter( { ( $0.submissionTime > yesterday! ) } )
    var todayPureeArray = pureeArray.filter( { ( $0.submissionTime > yesterday! ) } )

最后,它们全部合并为一个未排序的数组。

    var unsortedTodayArray: [Any] = []

    unsortedTodayArray.append(todayBottleArray)
    unsortedTodayArray.append(todayNursingArray)
    unsortedTodayArray.append(todayPureeArray)

这是一个问题...虽然我知道它们是不相关的,但是submissionTime属性出现在所有三个中。 我如何排序unsortedTodayArray通过submissionTime

#1楼 票数:4 已采纳

您可以使您的结构符合相同的协议。 就像是...

protocol SubmissionTimeable {
    var submissionTime: Date { get set }
}

struct Nursing: SubmissionTimeable {

    var leftTime: Double
    var rightTime: Double
    var submissionTime: Date
}

struct Bottle: SubmissionTimeable {

    var bottleQuantity: Double
    var bottleUnits: String
    var submissionTime: Date
}

struct Puree: SubmissionTimeable {

    var pureeQuantity: Double
    var pureeType: String
    var pureeUnits: String
    var submissionTime: Date
}

然后,让您未排序的数组成为协议的数组。

let unsortedArray = [SubmissionTimeable]()

然后,您可以使用SubmittingTime对该数组进行排序。

  ask by FasterThanLlamas translate from so

未解决问题?本站智能推荐:

1回复

Swift-按多个成员对结构数组进行排序,我该怎么做才能做得更好?[重复]

这个问题在这里已经有了答案: Swift - 使用多个条件对对象数组进行排序(8 个答案) 去年关闭。 目前我正在这样做: 在区域内的子区域内对名称进行排序
1回复

如何对结构数组排序

我有一个结构体数组,如下所示。 我想按索引降序对数组进行排序。 所以我尝试了这个: myClass.cpp myClass.h 我得到这个错误 有什么想法我可以解决这个问题吗?
1回复

只在Swift中混洗结构的一部分

我有一个留言板,其中的项目在从数据库中检索时按最新到最旧进行排序。 但是,在按时间顺序加载结构后,我希望第一项是当前用户的消息,无论它是否是最新的。 我尝试用下面的函数来做,但结果是按顺序对用户名进行排序。 结构代码 排序代码self.messageBoardData.sort { (lhs, rh
1回复

从结构数组排序和计算工资[关闭]

我必须计算每个雇员的工资。 我将如何编写函数来做到这一点? 我将如何根据员工的工资对他们进行分类? 数据文件如下所示:我想我必须将int转换为字符串或其他方式。 我知道计算工资的功能是错误的。 谢谢。 这是我要编写的代码:
3回复

按不同成员对结构数组进行排序

我需要使用 qsort 对每个具有不同数据类型的成员的结构数组进行排序。 问题是,我是否必须为每个函数编写 3 个不同的比较器函数,或者是否有实现 1 个函数的好方法?
2回复

在对其成员之一进行排序后移动结构数组的其余成员

我知道有更好和更简单的方法来做到这一点,但对于我的班级来说,这是我唯一可以使用的东西,并且可以使用我拥有的东西。 我正在处理一个库存菜单项目,我必须用冒泡排序对“sku”编号进行排序,现在我的问题是,我不知道如何同时移动其他成员。 每个 sku 编号都有其产品名称、价格和数量。 我的代码只对 sku
1回复

如何在C中按给定成员对结构数组进行排序

我有一个这样的结构: 我想编写一个函数来对这种结构的数组进行排序。 我应该把什么作为“?structMemberParameter?”?
1回复

对结构数组排序数组[Array][Struct]

我有一个3D数组,它是通过枚举的for循环构建的,该循环执行本地SQL Lite表的后台查询。 99%的时间一切正常。 1%的时间情况会变得有些混乱。 由于执行后台任务的代码包含在具有完成处理程序的封闭器中,因此我不确定为什么序列会变得很有趣。 下面是结构和数组的形成方式。 我当时