Swift合并俩个结构相同的字典(递归算法)

      上俩个月一直在忙着毕业,没有更新简书,最近终于有时间搞点代码的事情写点代码总结了。由于种种原因吧,没有再去实习时候待过的上海工作,就在老家太原找了个iOS的工作。去了公司一上来没能接触到项目,安排了一周的试岗。这几天的试岗内容是,1.完成合并任意俩个结构相同的字典,2.完成高德地图路线规划的线路补全(高德地图线路规划时候,起点到所规划的线路有一段距离是没有线路的)。

      由于好久没有玩逻辑的东西了,所以第一个任务卡了下,所以就先研究高德地图了。不过还好后来晚上回家慢慢找回了曾经的自己(程序员可能就是熬夜的命吧)。代码如下:

//合并俩个结构相同含有不同键的字典合并俩个一层数据的字典

func mergeDic(_dic1:Dictionary,_dic2:Dictionary) -> Any? {

var contentDic = Dictionary()

for tmp1 in dic1 {

  for tmp2 in dic2 {

  if tmp1.key == tmp2.key {

  if tmp1.value is Dictionary {

   contentDic[tmp1.key] = mergeDic(tmp1.value as! Dictionary, tmp2.value as! Dictionary) as! Dictionary

}else if tmp1.value is Array {

//判断字典val的类型 如果是数组就将数组合并

contentDic[tmp1.key] = mergeArray(tmp1.value as! Array, tmp2.value as! Array)

}

}

}

}

return contentDic

}

//合并俩个数组 并去除相同元素

func mergeArray(_arr1:Array,_arr2:Array) -> Any? {

var contentArr = arr1

contentArr.append(contentsOf: arr2)

let set = Set(contentArr)

return Array(set)

}

```

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容