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