ios - 按键值对字典数组进行排序

标签 ios arrays swift sorting dictionary

我有一个字典数组,我想按每个字典中的“itemName”键按字母顺序对它们进行排序。我如何在 Swift 中执行此操作?

我想对 itemsArray 进行排序。

let array = PFUser.currentUser()?.objectForKey("Collections") as! [[String : AnyObject]]
        let collectionsDictionary = array[0]
        itemsArray = collectionsDictionary[self.title!] as! [[String : AnyObject]]


        for dictionary in itemsArray {
            itemNames.append(dictionary["itemName"] as! String)
            itemUPC.append(dictionary["UPC"] as! String)
            pricePaid.append(dictionary["pricePaid"] as! String)
            currentPrice.append(dictionary["currentPrice"] as! String)
            model.append(dictionary["model"] as! String)
            if (dictionary["image"] != nil) {
                imagesArray.append(dictionary["image"] as! PFFile)
            } else {
                imagesArray.append(nil)
            }
        }

最佳答案

可能是这样的,使用sort:

let sortedArray = itemsArray.sort { $0["itemName"] < $1["itemName"] }

其中“$0”和“$1”分别代表数组中的每个字典及其后继。


如果编译器因为不知道此键的值是字符串而提示类型,您可以像这样进行转换(正如@Cristik 在评论中所说):

let sortedArray = itemsArray.sort { ($0["itemName"] as? String) < ($1["itemName"] as? String) }

关于ios - 按键值对字典数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745802/

相关文章:

c++ - 为什么两个相同数组的元素彼此相等

java - 将 byte[] 写入 RMS 列

ios - 核心数据 : error: Mutating a managed object after it has been removed from its context

ios - 如何调试 Ionic iOS 滑动手势问题

javascript - 为什么 paper.js 路径创建在 iOS 设备上不起作用?

ios - 如何通过修饰按钮重复功能

xcode - TabBarController 顶部栏标题

ios - 在按钮上按下 segue 不起作用

c++ - 初始化指针传递的数组

ios - 在 Swift 中从另一个 ViewController 访问变量