/**
* 數(shù)組去重方法:
* 1、for循環(huán)遍歷方法
* 2、filter+hashMap
* 3、filter+indexOf方法
* 4、for+sort方法
*/
/*
* for循環(huán)
* 遍歷數(shù)組,和新數(shù)組的每一項對比,有不同就push
*/
function unique1(arr) {
var newArr = [], isRepeated;
for( var i = 0, iLen = arr.length; i < iLen; i++) {
isRepeated = false;
for(var j = 0, jLen = newArr.length; j < jLen; j++) {
if(arr[i] == newArr[j]) {
isRepeated = true;
break;
}
}
!isRepeated && newArr.push(arr[i]);
}
return newArr;
}
/*
* filter+hashMap
* hash下標(biāo)
*/
function unique2(arr) {
var hashMap = {};
return [].filter.call(arr, function (item) {
if(!hashMap[item]) {
hashMap[item] = 1;
return true
}
});
}
/*
* filter + indexOf
* indexOf 返回第一個匹配元素的索引值
*/
function unique3(arr) {
return [].filter.call(arr, function (item, index) {
return arr.indexOf(item) === index;
});
}
/*
* for + sort
* 先sort對數(shù)組進行排序,然后相鄰的對比,不同就push
*/
function unique4(arr) {
arr.sort(); // 數(shù)組排序
var newArr = [arr[0]];
for(var i = 1, len = arr.length; i < len; i++) {
// 相鄰的對比(即新數(shù)組的最后一個元素與當(dāng)前遍歷元素對比),不相等就加入新數(shù)組
if(arr[i] !== newArr[newArr.length-1]) newArr.push(arr[i]);
}
return newArr;
}
[null干貨]數(shù)組去重方法4種方法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 今天開始學(xué)習(xí)CSS的進程。 一、認(rèn)識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Style ...