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

JavaScript數(shù)組去重的兩種方法推薦

 更新時間:2016年04月05日 16:31:03   投稿:jingxian  
下面小編就為大家?guī)硪黄狫avaScript數(shù)組去重的兩種方法推薦。小編覺得聽錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看

1、數(shù)組去重;

Array類型并沒有提供去重復(fù)的方法,如果要把數(shù)組的重復(fù)元素干掉,那得自己想辦法:

方法一:利用indexOf方法;

var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

方法二:

function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

方法二,總體思路是把數(shù)組元素逐個搬運到另一個數(shù)組,搬運的過程中檢查這個元素是否有重復(fù),如果有就直接丟掉。從嵌套循環(huán)就可以看出,這種方法效率極低。我們可以用一個hashtable的結(jié)構(gòu)記錄已有的元素,這樣就可以避免內(nèi)層循環(huán)。恰好,在Javascript中實現(xiàn)hashtable是極為簡單的,改進如下:

function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

以上這篇JavaScript數(shù)組去重的兩種方法推薦就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • js判斷上傳文件類型判斷FileUpload文件類型代碼

    js判斷上傳文件類型判斷FileUpload文件類型代碼

    這篇文章主要介紹了js判斷上傳文件類型判斷FileUpload文件類型代碼,需要的朋友可以參考下
    2014-05-05
  • Chrome不支持showModalDialog模態(tài)對話框和無法返回returnValue問題的解決方法

    Chrome不支持showModalDialog模態(tài)對話框和無法返回returnValue問題的解決方法

    上個禮拜修改測試一個后臺管理項目,在測試與各個瀏覽器兼容性的時候,發(fā)現(xiàn)在chrome瀏覽器下showModalDialog方法顯示的并不是模態(tài)對話框,就像新打開一個頁面一樣,父窗口仍然可以隨意獲取焦點,并可以打開多個窗體,而且返回值returnValue也無法返回,一直是undefined
    2016-10-10
  • 詳解Javascript模板引擎mustache.js

    詳解Javascript模板引擎mustache.js

    這篇文章主要為大家介紹了Javascript模板引擎mustache.js,mustache.js是一個簡單強大的Javascript模板引擎,使用它可以簡化在js代碼中的html編寫,壓縮后只有9KB,非常值得在項目中使用,需要的朋友可以參考下
    2016-01-01
  • Taro集成Redux快速上手的方法示例

    Taro集成Redux快速上手的方法示例

    這篇文章主要介紹了Taro集成Redux快速上手的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 動態(tài)刷新 dorado樹的js代碼

    動態(tài)刷新 dorado樹的js代碼

    動態(tài)刷新 dorado樹的js代碼
    2009-06-06
  • D3.js實現(xiàn)柱狀圖的方法詳解

    D3.js實現(xiàn)柱狀圖的方法詳解

    相信大家都知道數(shù)據(jù)可視化就是借助圖形化的手段把生硬的數(shù)據(jù)生動化,以此來展示出數(shù)據(jù)想要表達的信息,而圖表是最通常的一種數(shù)據(jù)可視化手段??扇孔约杭兪謩泳帉懜鞣N圖表實在是讓人頭疼,各種計算各種煩?,F(xiàn)在就為大家介紹如何用D3.js來實現(xiàn)柱狀圖。
    2016-09-09
  • JS計算斐波拉切代碼實例

    JS計算斐波拉切代碼實例

    這篇文章主要介紹了js計算斐波拉切,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Javascript 檢測鍵盤按鍵信息及鍵碼值對應(yīng)介紹

    Javascript 檢測鍵盤按鍵信息及鍵碼值對應(yīng)介紹

    Javascript中有3個事件句柄在對應(yīng)鍵盤的輸入狀態(tài):按鍵被按下(按下按鍵但還沒有抬起)、點擊按鍵(按下并抬起按鍵)、按鍵抬起(按鍵抬起之后),接下來詳細介紹,感興趣的朋友可以了解下
    2013-01-01
  • JavaScript調(diào)用后臺的三種方法實例

    JavaScript調(diào)用后臺的三種方法實例

    這篇文章介紹了JavaScript調(diào)用后臺的三種方法實例,有需要的朋友可以參考一下
    2013-10-10
  • XP折疊菜單&仿QQ2006菜單

    XP折疊菜單&仿QQ2006菜單

    XP折疊菜單&仿QQ2006菜單...
    2006-12-12

最新評論