// 方法一:set()
// 對於陣列項是物件的陣列,不能直接去重,陣列項是字串或者數字的可以直接去重
// 時間複雜度是o(1)
let delrepeatfunc = function (arr)
// delrepeatfunc(testarray)
// delrepeatfunc(testarraystore)
// delrepeatfunc(testarr)
// 方法二:兩次遍歷挨個對比有沒有
// indexof 或者 includes實際上也是一次遍歷
// 判斷新陣列裡面有沒有當前遍歷的元素:includes()(返回布林值,區分大小寫);indexof()(返回數字,表示當前遍歷的元素在目標陣列中的位置,-1代表沒有)
// 判斷陣列項是物件還是普通的字元:item instanceof type(返回布林值,object是true); typeof(item) (返回資料型別名稱,返回的名稱是字串型別,object,string,number等)
// 時間複雜度是o(n^2)
let delrepeatarray = function (arr)
if(!json.stringify(storearr).includes(json.stringify(item)))
} else
if(!storearr.includes(item))
}// let type = typeof(item)
// if(type == 'object')
// } else
// }
})console.log('去重的結果')
console.log(storearr)
}// delrepeatarray(testarray)
// delrepeatarray(testarraystore)
// delrepeatarray(testarr)
// 方法三:filter結合indexof
// filter迴圈提供了篩選功能,可達到去重的作用,但是效率不是十分高哦
// 對於陣列項是物件的陣列,不能直接去重
let distinct = function (a, b) )
}// let result = distinct(testobjarray, testarray)
// console.log(result.length)
// 方法四:sort()先排序,再比較相鄰兩個元素相等不相等
// 陣列元素是物件的話,加大了排序的複雜度
// 效能比較高的一種演算法 沒有set效能高
let delrepeatbyresort = function (array) }})
console.log('去重結果')
console.log(resultarray)
}// delrepeatbyresort(testarraystore)
// 方法五:物件的屬性不會重複
// 效率最高哦
let distinctarray = function (arr)
for (let i of arr)
}console.log(result)
}// distinctarray(testarraystore)
// 方法六:物件的屬性不會重複 用hasownproperty判斷物件有沒有指定屬性
// for in:i是索引,arr[i]是陣列元素值;for of:i是陣列元素值,沒有索引
let filterrepeat = function (arr)
let resultgroup =
// for (let i of arr)
// }
for (let i in arr)
}console.log(resultgroup)
}// filterrepeat(testarraystore)
// 方法七:map,map的結構類似於物件的結構,判斷map中有沒有陣列中指定的鍵即可
let maprepeat = function (arr) else
}console.log('結果')
console.log(mapresult)
}maprepeat(testarraystore)
// 方法八:遞迴,用loop實現迴圈,能不用遞迴就別用,效能低啊
let looprepeat = function (array)
loop(index - 1)}}
loop(len - 1)
console.log('結果')
console.log(arr)
}looprepeat(testarraystore)
iOS陣列去重總結
一般情況下我們都要對陣列進行去重整理,我總結了以下幾種方法,廢話不多說,一一分析 一 利用字典 nsarray arr qq ww qq nsmutabledictionary dict nsmutabledictionary dictionary for nsstring str in arr n...
演算法 陣列去重
1 實現目標 陣列去重 2 實現思路 1 建立新陣列。2 遍歷原陣列,判斷當前被遍歷元素是否存在於新陣列,如果存在於新陣列,則判斷當前被遍歷元素是重複的 如果不存在於新陣列,則判斷當前被遍歷元素不是重複的,則將其壓入新陣列。3 遍歷完畢原陣列後,返回新陣列。3 具體實現 根據對當前元素是否重複的判斷...
js陣列去重方法總結
暴力去重,利用迴圈每次判斷當前元素是否在陣列中別的地方出現過,此處不展開介紹 利用 es6 的 set 是不重複集合的特性 function reducerepeatbyset arr 利用object的key不能重複的特性 function reducerepeatbyobject arr let...