美文网首页
Swift合并俩个结构相同的字典(递归算法)

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

作者: ray_1942 | 来源:发表于2017-07-19 23:54 被阅读0次

      上俩个月一直在忙着毕业,没有更新简书,最近终于有时间搞点代码的事情写点代码总结了。由于种种原因吧,没有再去实习时候待过的上海工作,就在老家太原找了个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)

}

```

相关文章

网友评论

      本文标题:Swift合并俩个结构相同的字典(递归算法)

      本文链接:https://www.haomeiwen.com/subject/bvwrkxtx.html