欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js數(shù)組去重的方法匯總

 更新時間:2015年07月29日 11:28:50   投稿:hebedich  
本文給大家匯總介紹了3種javascript數(shù)組去重的方法以及示例,十分的簡單實用,有需要的小伙伴可以參考下。

三種方法

利用indexOf判斷新數(shù)組

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

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

利用indexOf判斷舊數(shù)組

 function unique2(arr){
  var tmpArr = []; //結(jié)果數(shù)組
  for(var i=0; i<arr.length; i++){
   //如果當前數(shù)組的第i項在當前數(shù)組中第一次出現(xiàn)的位置不是i,
   //那么表示第i項是重復的,忽略掉。否則存入結(jié)果數(shù)組
   if(arr.indexOf(arr[i]) == i){
    tmpArr.push(arr[i]);
   }
  }
  return tmpArr;
 }

利用hash查找

這里利用了JS對象的實現(xiàn)就是hash表的特性

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

數(shù)組擴展

 Array.prototype.unique1 = function (){
  var tmpArr = []; 
  for (var i = 0; i < this.length; i++){
   if (tmpArr.indexOf(this[i]) == -1){
    tmpArr.push(this[i]);
   }
  }
  return tmpArr;
 }

 Array.prototype.unique2 = function(){
   var tmpArr = []; //結(jié)果數(shù)組
   for(var i = 0; i < this.length; i++){
    if (this.indexOf(this[i]) == i){
     tmpArr.push(this[i]);
    }
   }
   return tmpArr;
 }

 Array.prototype.unique3 = function(){
   var tmpArr=[], hash = {};
   for(var i = 0; i < this.length; i++){
    if (!hash[this[i]]){
      hash[this[i]] = true; 
      tmpArr.push(this[i]); 
    }
   }
   return tmpArr;
 }

使用Set

Set和Map是ES6中新增的數(shù)據(jù)結(jié)構(gòu)
Set直接可以存儲不重復的一組key,這個key也可以是對象,字符串等
創(chuàng)建set

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

新增元素

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

刪除元素

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

遍歷元素

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

var s = new Set(['A', 'B', 'C']);

for (var x of s) { // 遍歷Set
  alert(x);
}

或者直接使用iterable內(nèi)置的forEach方法
forEach方法是ES5.1標準引入的

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

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

相關(guān)文章

  • 微信小程序如何實現(xiàn)快速精確定位

    微信小程序如何實現(xiàn)快速精確定位

    騰訊位置服務(wù)為微信小程序提供了基礎(chǔ)的標點能力、線和圓的繪制接口等地圖組件和位置展示、地圖選點等地圖API位置服務(wù)能力支持,下面這篇文章主要給大家介紹了關(guān)于微信小程序如何實現(xiàn)快速精確定位的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 微信小程序?qū)崿F(xiàn)全局狀態(tài)管理的方法整理

    微信小程序?qū)崿F(xiàn)全局狀態(tài)管理的方法整理

    已知微信小程序中如果要做到全局狀態(tài)共享,常用的有四種方式,分別是globalData、本地緩存、mobx-miniprogram和westore,本文將帶大家看看mobx-miniprogram是如何實現(xiàn)的小程序的全局狀態(tài)管理,需要的可以收藏一下
    2023-06-06
  • js執(zhí)行時間查看器

    js執(zhí)行時間查看器

    這個腳本用來計算當前腳本執(zhí)行的運行事件,而不是頁面的執(zhí)行時間。主要用于分析各個代碼的執(zhí)行效率。
    2010-06-06
  • createElement動態(tài)創(chuàng)建HTML對象腳本代碼

    createElement動態(tài)創(chuàng)建HTML對象腳本代碼

    利用createElement動態(tài)創(chuàng)建鏈接,div等代碼
    2008-11-11
  • layui異步加載table表中某一列數(shù)據(jù)的例子

    layui異步加載table表中某一列數(shù)據(jù)的例子

    今天小編就為大家分享一篇layui異步加載table表中某一列數(shù)據(jù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 原生JS實現(xiàn)圖片無縫滾動方法(附帶封裝的運動框架)

    原生JS實現(xiàn)圖片無縫滾動方法(附帶封裝的運動框架)

    下面小編就為大家?guī)硪黄鶭S實現(xiàn)圖片無縫滾動方法(附帶封裝的運動框架)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • JavaScript閉包原理與用法實例分析

    JavaScript閉包原理與用法實例分析

    這篇文章主要介紹了JavaScript閉包原理與用法,結(jié)合實例形式分析了javascript閉包的概念、功能、常見問題及相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 用客戶端js實現(xiàn)帶省略號的分頁

    用客戶端js實現(xiàn)帶省略號的分頁

    帶省略號的分頁只有在服務(wù)器端才可以實現(xiàn),下面為大家介紹的是用js實現(xiàn)的帶省略號的分頁,感興趣的朋友可以參考下哈,希望對你寫出好的分頁有所幫助
    2013-04-04
  • HTML+JS實現(xiàn)猜拳游戲的示例代碼

    HTML+JS實現(xiàn)猜拳游戲的示例代碼

    這篇文章主要為大家詳細介紹了如何利用HTML+CSS+JS編寫一個猜拳游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • JavaScript基礎(chǔ)教程之如何實現(xiàn)一個簡單的promise

    JavaScript基礎(chǔ)教程之如何實現(xiàn)一個簡單的promise

    看了些promise的介紹,還是感覺不夠深入,所以下面這篇文章主要給大家介紹了關(guān)于JavaScript基礎(chǔ)教程之如何實現(xiàn)一個簡單的promise的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-09-09

最新評論