| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Swift 递归转换数组对象为对象(层级对象)用来构建目录树 -> 正文阅读 |
|
[移动开发]Swift 递归转换数组对象为对象(层级对象)用来构建目录树 |
import Foundation class File: UIViewController { ? ? override func viewDidLoad() { ? ? ? ? super.viewDidLoad(); ? ? ? ? self.title = "递归转换数据" ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var images : Array<DepartmentModel> = []; ?? ? ? ? ? ? ? ? var department = DepartmentModel(iid: 1, ppid: 1, nname: "a", cchilds: []); ? ? ? ? department.id = 1; ? ? ? ? department.pid = 0; ? ? ? ? department.name = "一级"; ? ? ? ? department.childs = []; ? ? ? ? images.append(department); ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? var department2 = DepartmentModel(iid: 1, ppid: 1, nname: "a", cchilds: []); ?? ? ? ? ? ? ? ? department2.id = 2; ?? ? ? ? ? ? ? ? department2.pid = 1; ?? ? ? ? ? ? ? ? department2.name = "二级"; ?? ? ? ? ? ? ? ? department2.childs = []; ? ? ? ? ? ? ? ? images.append(department2); ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var department3 = DepartmentModel(iid: 1, ppid: 1, nname: "a", cchilds: []); ? ? ? ? ? ? ? ? ? ? ? ? ? ? department3.id = 3; ? ? ? ? ? ? ? ? ? ? ? ? ? ? department3.pid = 2; ? ? ? ? ? ? ? ? ? ? ? ? ? ? department3.name = "三级"; ? ? ? ? ? ? ? ? ? ? ? ? ? ? department3.childs = []; ?? ? ? ? ? ? ? ? ? ? ? ? ? images.append(department3); ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var department21 = DepartmentModel(iid: 1, ppid: 1, nname: "a", cchilds: []); ? ? ? ? ? ? ? ? department21.id = 3; ? ? ? ? ? ? ? ? department21.pid = 1; ? ? ? ? ? ? ? ? department21.name = "二级"; ? ? ? ? ? ? ? ? department21.childs = []; ?? ? ? ? ? ? ? images.append(department21); ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? let tree = self.buildTree(data: images); ? ? ? ? ? ? ? ? log.info("over"); ? ? } ?? ? ? ? func buildTree(data : Array<DepartmentModel>) -> Array<DepartmentModel> { ? ? ? ? var dataArray : Array<DepartmentModel> = []; ?? ? ? ? ? ? ? ? var intIdArray : Array<Int> = []; ?? ? ? ? ? ? ? ? for index in 0..<data.count { ? ? ? ? ? ? let dic = data[index] ; ? ? ? ? ? ? let id = dic.id; ? ? ? ? ? ? intIdArray.append(id); ? ? ? ? } ?? ? ? ? ? ? ? ? //迭代遍历 ?? ? ? ? for i in 0..<data.count { ? ? ? ? ? ? var dic = data[i] ; ? ? ? ? ? ? let pid = dic.pid; ?? ? ? ? ? ? ? ? ? ? ? ? if !intIdArray.contains(pid) { ? ? ? ? ? ? ? ? recursionFn(data: data,dddd: dic); ? ? ? ? ? ? ? ? dataArray.append(dic); ? ? ? ? ? ? } ?? ? ? ? ? } ?? ? ? ? ? ? ? ? if dataArray.isEmpty { ? ? ? ? ? ? dataArray = data; ? ? ? ? } ? ? ? ? return dataArray; ?? ? ? ? ? ? } ?? ? ?? ? ? ? //递归 ? ? func recursionFn(data : Array<DepartmentModel>, dddd : DepartmentModel) { ? ? ? ? var tempDictionary : Dictionary<String,Any> = [:]; ?? ? ? ? ? ? ? ? var child = getChildList(data: data, dictionary: dddd) ; ?? ? ? ? ? ? ? ? dddd.childs = child ; ? ? ? ? for index in 0..<child.count {//遍历子 ? ? ? ? ? ? var dictionary = child[index] ; ? ? ? ? ? ? if hasChild(data: data, dictionary: dictionary) { ? ? ? ? ? ? ? ? recursionFn(data: data, dddd: dictionary); ? ? ? ? ? ? } ? ? ? ? } ? ? } ?? ? ? ? func getChildList(data : Array<DepartmentModel>,dictionary : DepartmentModel) -> Array<DepartmentModel> { ?? ? ? ? ? ? ? ? var tempData : Array<DepartmentModel> = []; ?? ? ? ? ? ? ? ? for i in 0..<data.count { ? ? ? ? ? ? let dic = data[i] ; ? ? ? ? ? ? let pid = dic.pid;//父id ? ? ? ? ? ? if Int(pid) == dictionary.id { ? ? ? ? ? ? ? ? tempData.append(dic); ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ?? ? ? ? ?? ? ? ? ?? ? ? ? ? ? ? ? return tempData; ? ? } ?? ? ? ? func hasChild(data : Array<DepartmentModel>,dictionary : DepartmentModel) -> Bool { ? ? ? ? let boo = getChildList(data: data, dictionary: dictionary).count > 0 ?true:false; ? ? ? ? return boo; ? ? } ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? ?? ? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 6:47:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |