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