我对分配给数组字典的数据有问题,而且它不在顺序中。这是我可以测试的代码:
let arrayDataTest = ["1","2","3","4"];
var myarray = [String:[AnyObject]]()
var arrayAdd = [AnyObject]()
for i in 0...arrayDataTest.count - 1{
var dayArray = [String:AnyObject]()
dayArray["month"] = arrayDataTest[i]
arrayAdd.removeAll()
arrayAdd.append(dayArray)
let string = arrayDataTest[i]
myarray[string] = arrayAdd
}
我想要的循环结果是: 1,2,3,4 但我的问题循环结果是 4,2,1,3 。我不知道为什么?谢谢
答案 0 :(得分:1)
首先,从myarray
类型而非dictionary
类型,您有十分[{1}}。在词典中,您无法控制array
的顺序。因此,您为key
获得的输出没有任何错误的输出它正常工作。
答案 1 :(得分:0)
您的代码相当于:
let myArray = ["1","2","3","4"].map { [["month": $0]]}
请注意,与您的代码一样,myArray
是一个字典数组数组,每个字典都包含在一个只包含一个元素的数组中(这有点奇怪)。
myArray
是[[["month": "1"]], [["month": "2"]], [["month": "3"]], [["month": "4"]]]
要按顺序获取每个元素,请执行以下操作:
for element in myArray {
print(element)
}
输出结果为:
[["month": "1"]]
[["month": "2"]]
[["month": "3"]]
[["month": "4"]]