2016-10-05 107 views
-2
let unsorted = [{Name:Amy,age:20},{Name:Bill,age:20}] 
let sortedDict = sorted(unsorted){a,b in return a.Name < b.Name} 

如何根据Name键对未排序的数组进行排序?上面的代码似乎不起作用。排序字典数组(swift)

+0

是数组只有2个索引还是只是一个例子?因为如果它比这更长,你会想要实现一个for循环来排序数组,因为它通过索引 – KSigWyatt

+0

我认为你在这里缺少一些,它不能是一个字典,因为在你的情况下已经重复例如键名称'',你的代码当然不会编译。你能澄清你的问题吗? –

+0

其示例var array:[Dictionary ]。数组就是这样的。我想根据关键名称排序 – henry

回答

0

你在你的问题解释是错误的,所以我假设你有一个像

let unsorted = ["Amy": Amy, "Dan": Dan, "Ben": Ben] 

字典如果是这样,你可以通过

let sorted = unsorted.sort { $0.0 < $1.0 } 
+0

我已编辑上面的字典。你能利用这一点并为此提出答案吗?谢谢。 – henry

1

你的排序语法作品(几乎)如果排序您正在使用自定义结构而不是字典

struct Person { 
    let name : String 
    let age : Int 
} 

let unsortedPeople = [Person(name:"Bill", age:20), Person(name:"Amy", age:20)] 

现在您可以使用sorted函数

let sortedDict = unsortedPeople.sorted{ $0.name < $1.name }