arrays - Swift - 排序数组类似于另一个

标签 arrays swift sorting

在我的表格 View 中,我从这些数组中获取显示的数据:

var offersProduct = [String]()
var offersPrice = [String]()
var savings = [String]()
var shops = [String]()
var imageNames = [String]()
var exDates = [Int]()
var pickedIDs = [String]()
var setDates = [Int]()

目前数据未以任何方式排序。所以我有 2 个问题。

  1. 如何根据日期对数组进行排序?最接近 NSDate 的优先。

我有 exDates 数组,女巫是 timeIntervalSince1970 的 Int 数组。所以我想要最近的到期日期来获取数组的索引 0。

  1. 如何像第一个数组一样对其他数组进行排序?

假设我已经对 exDates 数组进行了排序,这给我带来了另一个问题,因为现在显示的到期日期与其他数组中的数据不匹配。因此,我需要通过将数据从与 exDates 数组中相同的索引移入,以某种方式对其他数组进行排序。怎么办?

希望有人能帮忙。

最佳答案

您的问题是您在应该使用单个/统一实体的地方使用单独的实体。要实现您正在尝试的目标,您应该切换到使用包含所有关联数据的 classstruct 。 如果您继续使用当前采用的方法,您肯定会遇到任意错误并执行枯燥的操作来同步所有阵列中的数据。因此,从本质上讲,使用多个数组而不是一个专门对象数组是一种不好的做法

考虑重构你的数组:

struct Entity {
    var offerProduct : String
    var offerPrice : String
    var savings : String
    var shop : String
    var imageName : String
    var exDate : Int
    var pickedID : String
    var setDate : Int
}

var entities = [Entity]()

然后要对单个实体数组(一旦填满)进行排序,您只需设置必要的条件,例如:

entities = entities.sorted(by: {$0.exDate > $1.exDate })

关于arrays - Swift - 排序数组类似于另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47450528/

相关文章:

javascript - 从数组到数组的数组

python - 我正在使用随机生成的有序对的 numpy 数组,我需要确定有序对是否是不同类型的三角形

ios - Firebase 嵌套索引查询规则

ios - 单击单元格中的按钮时访问所有单元格

java - 字符串基数排序 - StringIndexOutOfBoundsEception

JAVA : ZK framework Sorting and Manual Paging

javascript - 映射和过滤数组,但每 N 个元素添加修改

arrays - Array 的 count 属性是可选的吗?

swift - 恢复 animateWithDuration 。返回前台后重复

Java ArrayList 到 HashMap 的映射