? ? ? 上倆個月一直在忙著畢業(yè)乞封,沒有更新簡書,最近終于有時間搞點代碼的事情寫點代碼總結了蜈首。由于種種原因吧实抡,沒有再去實習時候待過的上海工作欠母,就在老家太原找了個iOS的工作欢策。去了公司一上來沒能接觸到項目,安排了一周的試崗赏淌。這幾天的試崗內(nèi)容是踩寇,1.完成合并任意倆個結構相同的字典,2.完成高德地圖路線規(guī)劃的線路補全(高德地圖線路規(guī)劃時候六水,起點到所規(guī)劃的線路有一段距離是沒有線路的)俺孙。
? ? ? 由于好久沒有玩邏輯的東西了辣卒,所以第一個任務卡了下,所以就先研究高德地圖了睛榄。不過還好后來晚上回家慢慢找回了曾經(jīng)的自己(程序員可能就是熬夜的命吧)荣茫。代碼如下:
//合并倆個結構相同含有不同鍵的字典合并倆個一層數(shù)據(jù)的字典
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的類型 如果是數(shù)組就將數(shù)組合并
contentDic[tmp1.key] = mergeArray(tmp1.value as! Array, tmp2.value as! Array)
}
}
}
}
return contentDic
}
//合并倆個數(shù)組 并去除相同元素
func mergeArray(_arr1:Array,_arr2:Array) -> Any? {
var contentArr = arr1
contentArr.append(contentsOf: arr2)
let set = Set(contentArr)
return Array(set)
}
```