ios - 根据对象属性过滤任何对象的数组

标签 ios swift filter

我收到了这种格式的回复

[
    "1234": {
        "startDate": "1536278400",
        "endDate": "1536796800",
        "playerRank": 1,
        "performance": 100,
        "isProfit": false,
        "members": 1
    },
    "adityaKumar": {
        "startDate": "1536364800",
        "endDate": "1540080000",
        "playerRank": 1,
        "performance": 100,
        "isProfit": false,
        "members": 6
    },
    "madhu60": {
        "startDate": "1539388800",
        "endDate": "1539475200",
        "playerRank": 1,
        "performance": 100,
        "isProfit": false,
        "members": 2
    }
]

此响应的类型为[string:Any]。我必须使用 playerRank 属性对数据进行排序。我希望输出的类型为 [string:Any]

这在 Swift 中怎么可能?

最佳答案

字典未排序

来自swift documentation

A dictionary stores associations between keys of the same type and values of the same type in an collection with no defined ordering.

但是,您可以在字典上使用 .sorted 方法,这将为您提供一个字典数组(数组是可排序的)。

let sorted = dictionary.sorted(by: { ($0.value["playerRank"]) < ($1.value["playerRank"]) })

从你原来的例子中sorted可能看起来像这样

[
    (
      "key": "madhu60",
      "value": {
         "startDate": "1539388800",
         "endDate": "1539475200",
         "playerRank": 1,
         "performance": 100,
         "isProfit": false,
         "members": 2
      }
   )
   ....
]

关于ios - 根据对象属性过滤任何对象的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52968655/

相关文章:

ios - 解析 : How to call a cloud method from an email?

ios - 嵌入导航 Controller 后 View 不会旋转

ios - 模块未在库演化支持下编译;使用它意味着无法保证二进制兼容性

ios - Storyboard中深色模式下的占位符颜色

hadoop - 如何在 pig latin 中的 foreach 中使用过滤器运算符

javascript - 如何对整个字符串使用过滤器?

c++ - 64 位架构的 iOS JUCE 库问题

ios - 如何计算 Swift 数组中元素的出现次数?

objective-c - Swift 优化不起作用?

Android C2DM 和 lib 项目