摘要:當排序后目標數組的項不是新數組的最后一項時,說明不是重復項,推入新數組。給對象添加屬性遍歷對象屬性方法五在上看到了這種針對數組中為純數字時的排序去重方法。
方法一:
function deRepeated(arr){//傳入要去重的目標數組 var newArr=[]; for(var i=0;i方法二: function deRepeated(arr){ var newArr=[]; for(var i=0;i方法三: ??????由于方法一和方法二都用到了ES5的indexOf()方法,有些瀏覽器可能不兼容。還可采用方法三:先對目標數組重排序,排序后重復項相鄰,然后遍歷目標數組。當排序后目標數組的項不是新數組的最后一項時,說明不是重復項,推入新數組。
function deRepeated(arr){ var newArr=[]; arr.sort(); for(var i=0;i 方法四:注意點:由于涉及到直接比較數組的項,所以應采用不全等方式"!=="; ?
缺點:由于對目標數組進行先排序后去重,因此返回的也是排序后的新數組。??????原理是遍歷目標數組各項,保存為對象屬性并統一給其設置屬性值1,給重復的屬性設置值時會覆蓋原來的,然后遍歷對象屬性,由于返回的是字符串形式,應轉為數字后再存入新數組。
function deRepeated(arr){ var obj={}, newArr=[]; for(var i=0;i方法五: ? ??????在stackoverflow上看到了這種針對數組中為純數字時的排序去重方法。
function deRepeated(arr){ arr.sort(function(a,b){ //對目標數組重排序,使有重復項的相鄰 return a-b; }) var newArr=[arr[0]]; //第一項先放入新數組中 for(var i=1;i方法六: ? ??????利用ES6新增的對象內置類型Set,利用其元素不重復的特點,在實例內部實現自動去重。 ?
function deRepeated(arr){ var set=new Set(arr); arr.splice(0); arr.push(...set); return arr; //返回原數組 //return new Array(...set); //返回新數組 } var arr=[2,3,6,4,7,3,5,4,4,4]; console.log(deRepeated(arr)); //[2,3,6,4,7,5]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89871.html
1、利用 indexOf() 方法之一 Array.prototype.unique = function(){ var temp = []; for (var i = 0;i < this.length;i++){ // 如果當前數組的第 i 項已經保存到了臨時數組,那么跳過 if(temp.indexOf( this[i] ) == -1){ ...
摘要:利用將結構轉換成數組拓展運算符內部使用循環拓展,合并數組之后去重第種方法將傳入的數組或非數組值與原數組合并組成一個新的數組并返回。該方法會產生一個新的數組再引用上面的任意一個去重方法第種。 1.第1種 雙層循環,外層循環元素,內層循環時比較值,如果有相同的值則跳過,不相同則push進數組 Array.prototype.distinct = function(){ var arr =...
摘要:但是這并不妨礙我們從思維拓展的角度出發,看看去重可以用幾種思路去實現。首先是常規的雙層循環比對的思路實現定義一個變量表示當前元素在中是否存在。依次對中的元素和原數組元素進行比對。重點是保證碰撞的幾率小到比中大獎還小就可以了。 前端在日常開發中或多或少都會碰到有對數據去重的需求,實際上,像是lodash這些工具庫已經有成熟完備的實現,并且可以成熟地運用于生產環境。但是這并不妨礙我們從思維...
摘要:實現數組更多的高階函數吾輩的博客原文場景雖說人人平等,但有些人更加平等。若是有一篇適合萌新閱讀的自己實現數組更多操作的文章,情況或許會發生一些變化。類似于的初始值,但它是一個函數,避免初始值在所有分組中進行累加。 JavaScript 實現數組更多的高階函數 吾輩的博客原文: https://blog.rxliuli.com/p/fc... 場景 雖說人人平等,但有些人更加平等。 為...
閱讀 3493·2023-04-26 02:00
閱讀 3085·2021-11-22 13:54
閱讀 1701·2021-08-03 14:03
閱讀 715·2019-08-30 15:52
閱讀 3092·2019-08-29 12:30
閱讀 2424·2019-08-26 13:35
閱讀 3368·2019-08-26 13:25
閱讀 3003·2019-08-26 11:39