Array 陣列去重 總結10方法(7)

2022-04-29 10:54:09 字數 2807 閱讀 9281

1,常規雙迴圈去重(缺點:迴圈次數較多)

array.prototype.unique1 = function()

let that = object(this),len = that.length >>> 0;

let res = [that[0]];

for(let i = 1; i < len; i++)

} if(!falg)

} return res;

}

注意:

(1,必須在第二個迴圈外push到新的陣列

(2,減少迴圈次數,在第二個迴圈中找到相等值,馬上退出該迴圈

(3,每次迴圈對falg檢驗

(4,由於第一值直接賦值,所以不用檢測第乙個值

2,陣列的sort先排序再去重(缺點:返回陣列為排序後的順序)

array.prototype.unique2 = function()

let that = object(this).sort(),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)

} return res;

}

3,物件鍵值不重複(缺點:佔記憶體)

array.prototype.unique3 = function()

let that = object(this),len = that.length >>> 0,obj = {},res = ;

for(let i = 0; i < len; i++)else if(obj[that[i]].indexof(type) === -1)

} return res;

}

4,indexof檢測新陣列(優點:簡單)

array.prototype.unique4 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)

} return res;

}

5,indexof檢測原陣列

array.prototype.unique5 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)

} return res;

}

6,陣列的every方法

array.prototype.unique6 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)))

} return res;

}

注意:如果發現了乙個這樣的元素,every 方法將會立即返回 false。否則,callback 為每乙個元素返回 true,every 就會返回 true。

7,陣列的some方法

array.prototype.unique10 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)))

} return res;

}

注意:如果找到了這樣乙個值,some 將會立即返回 true。否則,some 返回 false。

8,陣列的includes方法

array.prototype.unique7 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)

} return res;

}

9,陣列的filter方法

array.prototype.unique8 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)).length === 0)

} return res;

}

10,陣列的find方法(缺點:沒有做0或者false這個一類判斷)

array.prototype.unique9 = function()

let that = object(this),len = that.length >>> 0,res = [that[0]];

for(let i = 1; i < len; i++)))

} return res;

}

還有lastindexof,findindex等方法也能做去重,就不一一枚舉,有興趣的可以自己做一下。

其他[我的部落格,歡迎交流!](

[我的csdn部落格,歡迎交流!](

[前端筆記專欄](

[前端筆記列表](

[遊戲列表](

JS中陣列去重的九方法

陣列去重方法 方法一 運用set結構特點 儲存的資料沒有重複的,結果為物件,再用array.from 轉換成陣列 var arr 1,1,2,1,3,4,5 var set new set arr console.log array.from set 方法二 用es5新增的indexof 和push...

js陣列去重方法總結

暴力去重,利用迴圈每次判斷當前元素是否在陣列中別的地方出現過,此處不展開介紹 利用 es6 的 set 是不重複集合的特性 function reducerepeatbyset arr 利用object的key不能重複的特性 function reducerepeatbyobject arr let...

Js陣列去重方法總結

方法一 var arr 1,23,1,1,1,3,23,5,6,7,9,9,8,5 function removeduplicateditem arr return arr arr2 removeduplicateditem arr console.log arr console.log arr2 ...