Swift 2.0,xcode 7.1
我正在尝试从Parse数据库中检索一些数据,过滤它以删除重复数据并存储在字典中。每行解析都有客户下订单(JSON如下所示),我想在UITableView中检索它以显示下订单。如果客户最近已经下了多个订单,我想过滤它并在他的客户ID下的一个表视图部分显示他的所有订单。
过滤正在运行,但出于某种原因,我的循环并没有给我准确的结果。
解析第1行:
[{ “客户”: “9sKSDTG7GY”, “产品”: “汉堡”, “数量”: “2”}]
解析第2行:
[{ “客户”: “nyRHskbTwG”, “产品”: “炙热”, “数量”: “2”},{ “客户”: “nyRHskbTwG”, “产品”: “布瑞雅尼”, “数量” : “2”}]
检索此数据并存储在self.custome,self.fQuantity和self.fName变量中。
我使用的循环如下:
let cD = self.customer
print("Customer data before filtering Unique value: \(self.customer)")
self.uniqueValues = self.uniq(cD) //Calling a function to get unique values in customer data
print("Customer data after filtering Unique value: \(self.uniqueValues)")
var newArray = [[String]]()
for var count = 0; count < self.customer.count; count++ {
for sID in self.uniqueValues {
if sID.containsString(self.customer[count]){
let dicValue = [String(self.fQuantity[count]), String(self.fName[count])]
newArray.append(dicValue)
self.dicArray.updateValue(newArray, forKey: sID)
} else {
// Do nothing...
}
}
}
print("Dictionary Values: \(Array(self.dicArray.values))")
print("Dictionary Keys: \(Array(self.dicArray.keys))")
印刷输出如下:
过滤前的客户数据唯一值:[“9sKSDTG7GY”, “nyRHskbTwG”,“nyRHskbTwG”]
过滤后的客户数据唯一值:[“9sKSDTG7GY”, “nyRHskbTwG”]
字典值:[[[“2”,“Burger”],[“2”,“Sizzler”], [“2”,“Biryani”],[[“2”,“Burger”]]]
字典键:[“nyRHskbTwG”,“9sKSDTG7GY”]
有人能弄清楚我做错了什么吗?
答案 0 :(得分:1)
您过滤了数据,但正在循环访问未经过滤的客户列表。
for var count = 0; count < self.customer.count; count++ {
答案 1 :(得分:1)
正如@David建议的那样,你必须交换外环和内环。但是如果在if循环中找不到任何内容,我还必须删除newArray中包含的所有值。所以这就是我的工作方式。
let cD = self.customer
print("Customer data before filtering Unique value: \(self.customer)")
self.uniqueValues = self.uniq(cD) //Calling a function to get unique values in customer data
print("Customer data after filtering Unique value: \(self.uniqueValues)")
var newArray = [[String]]()
for sID in self.uniqueValues {
for var count = 0; count < self.customer.count; count++ {
if sID.containsString(self.customer[count]){
let dicValue = [String(self.fQuantity[count]), String(self.fName[count])]
newArray.append(dicValue)
self.dicArray.updateValue(newArray, forKey: sID)
} else {
newArray.removeAll() // ****** Adding this works for me
}
}
}
print("Dictionary Values: \(Array(self.dicArray.values))")
print("Dictionary Keys: \(Array(self.dicArray.keys))")