国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

總結(jié)Javascript中數(shù)組各種去重的方法

2019-11-20 08:49:31
字體:
供稿:網(wǎng)友

前言

在做javascript開發(fā)的時候,經(jīng)常會遇到數(shù)組元素重復(fù)的問題,而javascript Array又沒有直接提供方法解決此問題,還需要自己去實現(xiàn)。這篇文章總結(jié)了Javascript中數(shù)組各種去重的方法,下面來一起看看。

方法一 利用對象屬性不重復(fù)的特性

Array.prototype.distinct = function (){  var arr = this,    i,    obj = {},    result = [],    len = arr.length;  for(i = 0; i< arr.length; i++){    if(!obj[arr[i]]){  //如果能查找到,證明數(shù)組元素重復(fù)了      obj[arr[i]] = 1;      result.push(arr[i]);    }  }  return result;};

方法二 雙層循環(huán),外層循環(huán)元素,內(nèi)層循環(huán)時比較值

Array.prototype.distinct = function(){  var arr = this,    result = [],    i,    j,    len = arr.length;  for(i = 0; i < len; i++){    for(j = i + 1; j < len; j++){      if(arr[i] === arr[j]){        j = ++i;      }    }    result.push(arr[i]);  }  return result;}

方法三 數(shù)組遞歸去重

Array.prototype.distinct = function (){  var arr = this,    len = arr.length;  arr.sort(function(a,b){    //對數(shù)組進(jìn)行排序才能方便比較    return a - b;  })  function loop(index){    if(index >= 1){      if(arr[index] === arr[index-1]){        arr.splice(index,1);      }      loop(index - 1);  //遞歸loop函數(shù)進(jìn)行去重    }  }  loop(len-1);  return arr;};

方法四 利用indexOf以及forEach

Array.prototype.distinct = function (){  var arr = this,    result = [],    len = arr.length;  arr.forEach(function(v, i ,arr){    //這里利用map,filter方法也可以實現(xiàn)    var bool = arr.indexOf(v,i+1);    //從傳入?yún)?shù)的下一個索引值開始尋找是否存在重復(fù)    if(bool === -1){      result.push(v);    }  })  return result;};

方法五 利用ES6的set

function dedupe(array){  return Array.from(new Set(array));}dedupe([1,1,2,3]) //[1,2,3]

方法六 拓展運(yùn)算符(…)內(nèi)部使用for…of循環(huán)

let arr = [3,5,2,2,5,5];let unique = [...new Set(arr)];  //[3,5,2]

總結(jié)

好了,以上就是這篇文章的全部內(nèi)容了,個人比較喜歡使用方法一,不會對原數(shù)組進(jìn)行修改,希望這篇文章對大家能有所幫助,如果有疑問大家可以留言交流。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 商河县| 巴楚县| 石屏县| 安化县| 洞口县| 中方县| 肇庆市| 东光县| 娄烦县| 翼城县| 德保县| 通榆县| 云梦县| 潜江市| 扶沟县| 满洲里市| 梅州市| 忻城县| 浦县| 报价| 涞水县| 舟山市| 南阳市| 潼关县| 定州市| 额尔古纳市| 集贤县| 乐平市| 广汉市| 北流市| 清水河县| 宁安市| 科技| 黄龙县| 柘城县| 乐都县| 敦煌市| 甘谷县| 马尔康县| 岑巩县| 高唐县|