麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

js數組去重的方法匯總

2024-05-06 16:24:02
字體:
來源:轉載
供稿:網友

本文給大家匯總介紹了3種javascript數組去重的方法以及示例,十分的簡單實用,有需要的小伙伴可以參考下。

三種方法

利用indexOf判斷新數組

underscore.js中實際上也是使用的類似的indexOf

 

 
  1. //傳入數組 
  2. function unique1(arr){ 
  3. var tmpArr = []; 
  4. for(var i=0; i<arr.length; i++){ 
  5. //如果當前數組的第i已經保存進了臨時數組,那么跳過, 
  6. //否則把當前項push到臨時數組里面 
  7. if(tmpArr.indexOf(arr[i]) == -1){ 
  8. tmpArr.push(arr[i]); 
  9. return tmpArr; 

利用indexOf判斷舊數組

 

 
  1. function unique2(arr){ 
  2. var tmpArr = []; //結果數組 
  3. for(var i=0; i<arr.length; i++){ 
  4. //如果當前數組的第i項在當前數組中第一次出現的位置不是i, 
  5. //那么表示第i項是重復的,忽略掉。否則存入結果數組 
  6. if(arr.indexOf(arr[i]) == i){ 
  7. tmpArr.push(arr[i]); 
  8. return tmpArr; 

利用hash查找

這里利用了JS對象的實現就是hash表的特性

 

 
  1. function unique3(arr){ 
  2. var tmpArr = [], hash = {};//hash為hash表 
  3. for(var i=0;i<arr.length;i++){ 
  4. if(!hash[arr[i]]){//如果hash表中沒有當前項 
  5. hash[arr[i]] = true;//存入hash表 
  6. tmpArr.push(arr[i]);//存入臨時數組 
  7. return tmpArr; 

數組擴展

 

 
  1. Array.prototype.unique1 = function (){ 
  2. var tmpArr = [];  
  3. for (var i = 0; i < this.length; i++){ 
  4. if (tmpArr.indexOf(this[i]) == -1){ 
  5. tmpArr.push(this[i]); 
  6. return tmpArr; 
  7.  
  8. Array.prototype.unique2 = function(){ 
  9. var tmpArr = []; //結果數組 
  10. for(var i = 0; i < this.length; i++){ 
  11. if (this.indexOf(this[i]) == i){ 
  12. tmpArr.push(this[i]); 
  13. return tmpArr; 
  14.  
  15. Array.prototype.unique3 = function(){ 
  16. var tmpArr=[], hash = {}; 
  17. for(var i = 0; i < this.length; i++){ 
  18. if (!hash[this[i]]){ 
  19. hash[this[i]] = true;  
  20. tmpArr.push(this[i]);  
  21. return tmpArr; 

使用Set

Set和Map是ES6中新增的數據結構

Set直接可以存儲不重復的一組key,這個key也可以是對象,字符串等

創建set

 

 
  1. var s = new Set([1, 2, 3,]); 
  2. s; // Set {1, 2, 3} 

新增元素

 

 
  1. >>> s.add(4) 
  2. >>> s 
  3. {1, 2, 3, 4} 
  4. >>> s.add(4) 
  5. >>> s 
  6. {1, 2, 3, 4}//重復元素不會被添加 

刪除元素

 

 
  1. s; // Set {1, 2, 3, 4} 
  2. s.delete(3); 
  3. s; // Set {1, 2, 4} 

遍歷元素

Map和Set無法使用下標

ES6標準引入了新的iterable類型,Array、Map和Set都屬于iterable類型

 

 
  1. var s = new Set(['A''B''C']); 
  2.  
  3. for (var x of s) { // 遍歷Set 
  4. alert(x); 

或者直接使用iterable內置的forEach方法

forEach方法是ES5.1標準引入的

 

 
  1. var s = new Set(['A''B''C']); 
  2. s.forEach(function (element, set) { 
  3. alert(element); 
  4. }); 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产69久久精品成人看 | 国产午夜亚洲精品午夜鲁丝片 | www亚洲成人| 黄网站在线免费看 | 在线看免费观看日本 | 巨乳激情| 99爱视频| 私库av在线免费观看 | 国产毛片视频 | 色阁阁69婷婷 | 亚洲综人网 | wwwxxx国产| 中文字幕精品一区久久久久 | 中文字幕在线观看免费 | 92看片淫黄大片一级 | 一级一级一级毛片 | 一区二区三区四区高清视频 | 大片毛片 | 综合激情网 | 日韩欧美高清片 | 中文字幕欧美专区 | 欧洲色阁中文字幕 | 亚洲精品成人久久久 | 国产精品成人亚洲一区二区 | 久久色伦理资源站 | 色视频在线观看 | 欧美精品一区自拍a毛片在线视频 | 俄罗斯16一20sex牲色另类 | 亚洲午夜不卡 | 精品一区二区在线观看视频 | 性猛aa久久久 | 欧美性生视频 | 日韩精品dvd | 综合国产在线 | 青草伊人网 | 久草干| 欧美一级做性受免费大片免费 | 嗯~啊~用力~高h | 久久影院yy6080 | 国产精品自拍av | 欧美3p激情一区二区三区猛视频 |