Ios swift 4分裂阵列和滤波器
我将构建一个包含节的UICollectionView。 这些部分基于json.category的返回值 json格式如下所示:Ios swift 4分裂阵列和滤波器,ios,uicollectionview,sections,Ios,Uicollectionview,Sections,我将构建一个包含节的UICollectionView。 这些部分基于json.category的返回值 json格式如下所示: [{"id":"1", "name":"Apple", "category":"Fruits"}, {"id":"2", "name":"Pie", "category":"Fruits"}, {"id":"3", "name":"Tomato", "category":"Vegetable"}] 我需要一个数组过滤器,该数组类似于:(用于sectio
[{"id":"1",
"name":"Apple",
"category":"Fruits"},
{"id":"2",
"name":"Pie",
"category":"Fruits"},
{"id":"3",
"name":"Tomato",
"category":"Vegetable"}]
我需要一个数组过滤器,该数组类似于:(用于sectionsItems和SectionName)
试试下面的代码
let arrData = [["id": "1",
"name": "Apple",
"category": "Fruit"],
["id": "2",
"name": "Pie",
"category": "Fruit"],
["id": "3",
"name": "Tomato",
"category": "Vegetable"]]
let categorieNames = Array(Set(arrData.map({$0["category"]!})))
var arrResult:[[String]] = []
for i in 0..<categorieNames.count {
let categories = arrData.filter({$0["category"] == categorieNames[i]}).map({$0["name"]!})
arrResult.append(categories)
}
print("result : \(arrResult)")
let arrData=[[“id”:“1”,
“名称”:“苹果”,
“类别”:“水果”],
[“id”:“2”,
“名称”:“馅饼”,
“类别”:“水果”],
[“id”:“3”,
“名称”:“西红柿”,
“类别”:“蔬菜”]]
让categorieNames=Array(Set(arrData.map({$0[“category”]!})))
var arresult:[[String]=[]
对于0..中的i,可以按如下方式执行:
let arrData = [["id": "1",
"name": "Apple",
"category": "Fruit"],
["id": "2",
"name": "Pie",
"category": "Fruit"],
["id": "3",
"name": "Tomato",
"category": "Vegetable"]]
var categorys = [[String]]()
var fruits = [String]()
var vegetable = [String]()
for data in arrData {
if let category = data["category"] {
if category == "Fruit"{
if let aFruit = data["name"] {
fruits.append(aFruit)
}
}
else if category == "Vegetable" {
if let aVeggeie = data["name"] {
vegetable.append(aVeggeie)
}
}
}
}
categorys.append(fruits)
categorys.append(vegetable)
谢谢,我会在操场上测试的,它很有魅力!但是我无法使用json数据:-(请编辑您的答案并添加实际的json.Swtift 4解决方案嗨,谢谢,但类别未知。我无法检查==“水果”
let arrData = [["id": "1",
"name": "Apple",
"category": "Fruit"],
["id": "2",
"name": "Pie",
"category": "Fruit"],
["id": "3",
"name": "Tomato",
"category": "Vegetable"]]
var categorys = [[String]]()
var fruits = [String]()
var vegetable = [String]()
for data in arrData {
if let category = data["category"] {
if category == "Fruit"{
if let aFruit = data["name"] {
fruits.append(aFruit)
}
}
else if category == "Vegetable" {
if let aVeggeie = data["name"] {
vegetable.append(aVeggeie)
}
}
}
}
categorys.append(fruits)
categorys.append(vegetable)