中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

javascript數組去重小結
來源:易賢網 閱讀:1059 次 日期:2016-07-22 16:23:59
溫馨提示:易賢網小編為您整理了“javascript數組去重小結”,方便廣大網友查閱!

本文給大家匯總介紹了javascript中數組去重的4種方法,分別是循環匹配去重,JSON去重/對象去重/字典去重,隊列遞歸去重,INDEXOF去重方式,非常的細致全面,有需要的小伙伴可以參考下。

前言

最近為了換工作,準備下面試,開始回顧復習JavaScript相關的知識,昨天下午想到了數組去重的相關方法,干脆整理出幾篇JavaScript算法文章,以備后用,此系列文章不定篇數,不定時間,想到哪寫到哪,不保證正確性,不保證高效率,只是談談個人理解,如有錯誤,請諸位斧正。

關于去重

數組去重是一個比較常見的算法考察點,實現去重的方式無外乎通過唯一性和非唯一性。簡單來講就是挑出唯一的或者刪除不唯一的。以下所有算法都是我自己瞎命名的,請無視之。

循環匹配去重

顧名思義,就是把數組中的每一個元素都和存放元素的數組對比,遇到不重復的元素,放入新數組中,直至循環結束,由于匹配也有循環,也可以稱為雙循環匹配去重,這也是大家都能想到的最簡單的方式。

實現代碼:

var arr=[1,3,4,56,3,7,9,7];

var result=[];

//匹配

function isMatch(array,n){

  for(var i=0;i<array.length;i++){

    if(array[i]==n){

      return true;

    }

  }

  return false;

};

//驗證所有元素

function unqiue(array){

  for(var i=0;i<array.length;i++){

    if(!isMatch(result,array[i])){

      result.push(array[i]);

    }

  }

  return result;

};

console.log(unqiue(arr));

注意:上面方法有一個bug,當存在數字和數字形式的字符串的時候,沒有區分出數字和數字字符串。因為在匹配函數isMatch()里用的是雙等“==”,沒有驗證元素類型,實際應該使用全等“===”。

修改后的代碼如下:

var arr=[1,3,4,56,3,'1',7,9,7];

var result=[];

//匹配

function isMatch(array,n){

  for(var i=0;i<array.length;i++){

    if(array[i]===n){

      return true;

    }

  }

  return false;

};

//驗證所有元素

function unqiue(array){

  for(var i=0;i<array.length;i++){

    if(!isMatch(result,array[i])){

      result.push(array[i]);

    }

  }

  return result;

};

console.log(unqiue(arr));

算法優缺點:

優點:

實現簡單,思路直觀

缺點:

效率低下

JSON去重/對象去重/字典去重

JSON去重,簡單來講就是利用Object對象key的唯一性,將數組的元素轉換為JSON或者說對象的key值。JSON的value存儲數組的索引index,然后對JSON對象進行for in循環,存儲到新數組中。

Array、JSON、{}都是Object,所以采用任意一種都可以實現此算法。

實現代碼:

Array方式:

var arr=[1,3,4,56,3,'1',7,9,7];

function unqiue(array){

  var cache=[];

  var result=[];

   //將數組元素轉為對象的key

  for(var i=0;i<array.length;i++){

    cache[array[i]]=i;

  };

  //存儲key(實際的數組元素)

  for(key in cache){

    result.push(key);

  };

  return result;

}

console.log(unqiue(arr));

JSON方式:

var arr=[1,3,4,56,3,'1',7,9,7];

function unqiue(array){

  var cache={};

  var result=[];

   //將數組元素轉為對象的key

  for(var i=0;i<array.length;i++){

    cache[array[i]]=i;

  };

  //存儲key(實際的數組元素)

  for(key in cache){

    result.push(key);

  };

  return result;

}

console.log(unqiue(arr));

Object方式:

var arr=[1,3,4,56,3,'1',7,9,7];

function unqiue(array){

  var cache=new Object();

  var result=[];

   //將數組元素轉為對象的key

  for(var i=0;i<array.length;i++){

    cache[array[i]]=i;

  };

  //存儲key(實際的數組元素)

  for(key in cache){

    result.push(key);

  };

  return result;

}

console.log(unqiue(arr));

算法優缺點:

優點:

簡單

效率非常高

缺點:

1.改變了數組元素的類型() 

2.有bug(無非區分數字和數字類型字符串)

隊列遞歸去重

昨天晚上思忖良久想到用隊列的方式,先將數組排序成升序或降序的隊列,這樣相同的元素就處在一個區域內,然后從隊尾向前匹配,如果匹配成功,刪除隊尾,然后前一個元素再向其前面的匹配。整個匹配完成之后,剩下的元素就是去重過后的隊列。

var arr=[6, 4, 6, 9, '6', 13, 56, 9, ,'11',1, 8, '7', 17, 5, 45, 3, 7];

function unqiue(array){

  //排序數組,形成隊列

  array.sort(function(m,n){return m-n;});

  ////排序后,隊尾向前對比,如果相同,刪除隊尾,依次類推

  function loop(Index){

    if(Index>=1){

      if(array[Index]===array[Index-1]){

        arr.splice(Index,1);

      }

      loop(Index-1);

    }

     

  }

  loop(array.length-1);

  return array;

}

console.log(unqiue(arr));

算法優缺點:

優點:

效率較高

缺點:

效率不是最高

INDEXOF去重方式

判斷瀏覽器是否支持indexOf ,indexOf 為ecmaScript5新方法 IE8以下(包括IE8, IE8只支持部分ecma5)不支持

if (!Array.prototype.indexOf){ 

// 新增indexOf方法 

Array.prototype.indexOf = function(item){ 

var result = -1, a_item = null; 

if (this.length == 0){ 

return result; 

for(var i = 0, len = this.length; i < len; i++){ 

a_item = this[i]; 

if (a_item === item){ 

result = i; 

break; 

return result; 

更多信息請查看網絡編程
易賢網手機網站地址:javascript數組去重小結
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲另类视频| 99精品国产在热久久下载| 国产精品嫩草99av在线| 欧美日韩国产91| 国产欧美日韩91| 亚洲成色777777女色窝| 亚洲深夜av| 久久只有精品| 国产农村妇女毛片精品久久麻豆 | 久久久久久999| 欧美日韩在线不卡| 精品成人国产| 亚洲综合视频一区| 欧美精品国产| 在线欧美一区| 久久久久久久久久久久久女国产乱 | 欧美黄色一级视频| 国产一区久久| 性欧美video另类hd性玩具| 欧美三级日本三级少妇99| 在线免费不卡视频| 久久国产精品99国产| 国产精品婷婷| 亚洲在线观看视频网站| 欧美理论电影网| 亚洲欧洲一区二区在线观看 | 欧美激情第3页| 亚洲成人在线观看视频| 欧美淫片网站| 国产一区二区三区高清在线观看| 亚洲精品一品区二品区三品区| 亚洲欧美日韩网| 欧美激情精品久久久久久| 精品成人国产在线观看男人呻吟| 先锋影音网一区二区| 国产精品高清在线观看| 亚洲最新在线| 国产精品久久久久秋霞鲁丝| 国产精品99久久不卡二区| 欧美日韩第一页| 亚洲毛片视频| 欧美日韩免费一区二区三区| 1000部国产精品成人观看| 欧美中日韩免费视频| 国内自拍视频一区二区三区| 久久久五月天| 99国产精品99久久久久久粉嫩| 欧美国产日韩精品免费观看| 99国产精品自拍| 欧美亚洲第一页| 久久av资源网站| 亚洲日韩中文字幕在线播放| 久久综合九色综合久99| 亚洲第一精品在线| 欧美日韩妖精视频| 欧美在线视频一区二区三区| 怡红院精品视频在线观看极品| 欧美国产一区二区| 亚洲深夜激情| 尤物九九久久国产精品的特点 | 一区二区三区日韩欧美精品| 国产精品区一区| 欧美一区二区三区四区在线| 韩国成人福利片在线播放| 欧美激情在线有限公司| 亚洲欧美国产一区二区三区| 国内精品久久久| 乱中年女人伦av一区二区| 亚洲欧洲精品一区二区三区波多野1战4 | 国产精品午夜国产小视频| 久久久免费精品| 一区二区三区欧美日韩| 国产乱码精品一区二区三区忘忧草| 久久久久久尹人网香蕉| 亚洲精品日韩综合观看成人91| 国产精品理论片在线观看| 欧美在线999| 99re6热在线精品视频播放速度| 国产视频一区在线| 欧美激情一区二区三区四区| 亚洲字幕一区二区| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品videosex极品| 久久看片网站| 亚洲欧美日韩区| 亚洲午夜精品久久久久久浪潮| 在线日韩电影| 国产一区二区高清不卡| 欧美日韩视频在线一区二区| 美腿丝袜亚洲色图| 久久久久国产精品人| 亚洲女ⅴideoshd黑人| 日韩视频中文字幕| 亚洲国产一区在线| 精品不卡视频| 黄色精品一区| 国产午夜久久| 国产女优一区| 国产精品久久久久秋霞鲁丝| 欧美三级小说| 欧美日韩大陆在线| 欧美日韩综合| 欧美激情在线观看| 国产欧美短视频| 国产精品久久久久久模特 | 欧美一区二区三区精品| 一区二区三区国产在线观看| 亚洲乱码国产乱码精品精| 亚洲日本理论电影| 亚洲精品综合在线| 一本一本大道香蕉久在线精品| 日韩写真视频在线观看| 亚洲素人一区二区| 香蕉国产精品偷在线观看不卡| 亚洲综合精品| 欧美中在线观看| 美女91精品| 欧美mv日韩mv国产网站| 欧美日韩精品一二三区| 欧美日韩精品中文字幕| 国产精品你懂得| 一区免费观看视频| 一区二区三区四区五区视频| 亚洲欧美中文另类| 裸体歌舞表演一区二区| 国产精品xvideos88| 国产在线精品自拍| 91久久在线播放| 亚洲欧美日韩中文播放| 久久精品中文字幕一区| 欧美激情视频免费观看| 国产精品免费观看在线| 国内精品久久久久久| 99国产精品视频免费观看| 久久精品免费播放| 欧美激情国产日韩| 国产日韩欧美中文| 亚洲精品社区| 久久精品一区四区| 欧美日韩视频在线| 一区在线观看| 亚洲一区二区成人| 免费日韩成人| 国产欧美日韩亚洲| 日韩一级裸体免费视频| 久久精品视频亚洲| 国产精品毛片va一区二区三区| 伊人狠狠色j香婷婷综合| 亚洲尤物在线视频观看| 欧美激情第五页| 永久555www成人免费| 欧美一区午夜精品| 国产精品第一区| 亚洲国产天堂久久综合| 欧美一二三区精品| 欧美丝袜一区二区| 最近中文字幕日韩精品 | 国产一区二区丝袜高跟鞋图片| 亚洲欧洲一二三| 久久久久久97三级| 国产欧美日韩一区二区三区在线| 日韩视频在线一区二区三区| 鲁鲁狠狠狠7777一区二区| 国产视频观看一区| 亚洲男人的天堂在线观看| 欧美日韩国产成人| 亚洲精品在线电影| 欧美激情一区在线观看| 最新高清无码专区| 欧美jizz19性欧美| 亚洲欧美在线x视频| 欧美精品成人在线| 最新亚洲一区| 欧美高清视频在线播放| 91久久线看在观草草青青| 欧美1区2区视频| 亚洲精品美女久久7777777| 欧美成人午夜| 亚洲裸体视频| 国产精品裸体一区二区三区| 亚洲欧美日韩一区二区在线| 国产欧美日韩亚洲一区二区三区| 亚洲欧美国产三级| 国内久久婷婷综合| 久久久一二三| 亚洲激情av| 欧美色中文字幕| 亚洲综合清纯丝袜自拍| 国产欧美日韩综合一区在线播放| 亚洲欧美在线另类| 国产日韩欧美在线播放不卡| 欧美诱惑福利视频| 亚洲国产欧美国产综合一区| 欧美激情第4页| 亚洲午夜久久久久久久久电影院| 国产精品一区二区三区观看 | 国产午夜精品久久久久久久| 久久久噜噜噜久久中文字幕色伊伊| 在线 亚洲欧美在线综合一区| 欧美成人官网二区|