最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中數(shù)組雙重去重的方法總結(jié)

 更新時間:2023年07月26日 09:23:46   作者:歌謠  
這篇文章主要為大家學(xué)習(xí)介紹了JavaScript中數(shù)組雙重去重的幾個常用方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

方式一循環(huán)法去重

實現(xiàn)代碼

  var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
        function ArrayCommon(arr) {
            //判斷是不是數(shù)組  不是數(shù)組就返回一個false
            if (!Array.isArray(arr)) {
                console.log('這不是一個數(shù)組哦')
                return
            }
            //設(shè)置初始值為空數(shù)組
            var res = []
            //數(shù)組遍歷
            for (let i = 0; i < arr.length; i++) {
                //設(shè)置一個初始值
                let flag = true
                //繼續(xù)二次遍歷 如果值相同 就不放入新數(shù)組
                for (let j = 0; j < res.length; j++) {
                    if (arr[i] === res[j]) {
                        flag = false
                        break
                    }						
                }
                if (flag) {
                        res.push(arr[i])
                    }
                //當(dāng)flag1為true的時候 數(shù)組push
            }
            return res
        }
        console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

 [1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

暴力去重法是一種去重方式 但是復(fù)雜度上面會顯得特別的復(fù)雜 雙重for循環(huán)可以優(yōu)化

方式二indexof去重

實現(xiàn)代碼

      var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
        function ArrayCommon(arr) {
            //判斷是不是數(shù)組  不是數(shù)組就返回一個false
            if (!Array.isArray(arr)) {
                console.log('這不是一個數(shù)組哦')
                return
            }
            //設(shè)置初始值為空數(shù)組
            var res = []
            //數(shù)組遍歷 
            for (let i = 0; i < arr.length; i++) {
                //只要這個值在數(shù)組中是唯一出現(xiàn)就push到新數(shù)組里面
                if(res.indexOf(arr[i])===-1){
                    res.push(arr[i])
                }     
            }
            return res
        }
        console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

[1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

通過該值為數(shù)組中的唯一下標(biāo)進(jìn)行判斷 從而獲取到相應(yīng)的一個值

方式三filter去重

實現(xiàn)代碼

  var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
        function ArrayCommon(arr) {
            //判斷是不是數(shù)組  不是數(shù)組就返回一個false
            if (!Array.isArray(arr)) {
                console.log('這不是一個數(shù)組哦')
                return
            }
            //元素在數(shù)組中第一次出現(xiàn)的位置是否和元素現(xiàn)在的位置相等
            return Array.prototype.filter.call(arr,function(item,index){
                console.log(arr.indexOf(item),item,index)
                return arr.indexOf(item)===index
            })
        }
        console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

0 1 0
數(shù)組去重的第二種方式220313.html:24 1 2 1
數(shù)組去重的第二種方式220313.html:24 2 3 2
數(shù)組去重的第二種方式220313.html:24 3 4 3
數(shù)組去重的第二種方式220313.html:24 4 6 4
數(shù)組去重的第二種方式220313.html:24 5 7 5
數(shù)組去重的第二種方式220313.html:24 0 1 6
數(shù)組去重的第二種方式220313.html:24 1 2 7
數(shù)組去重的第二種方式220313.html:24 2 3 8
數(shù)組去重的第二種方式220313.html:24 9 8 9
數(shù)組去重的第二種方式220313.html:24 10 9 10
數(shù)組去重的第二種方式220313.html:30 (8) [1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

利用indexOf檢測元素在數(shù)組中第一次出現(xiàn)的位置是否和元素現(xiàn)在的位置相等,如果不等則說明該元素是重復(fù)元素

方式四先排序在對比

實現(xiàn)代碼

  var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
    function ArrayCommon(arr) {
      //判斷是不是數(shù)組  不是數(shù)組就返回一個false
      if (!Array.isArray(arr)) {
        console.log('這不是一個數(shù)組哦')
        return
      }
      //先對數(shù)組進(jìn)行排序
      arr = arr.sort()
      console.log(arr,"arr")
      //判斷相鄰得元素是不是相等 如果不相等就放進(jìn)數(shù)組里面去
      let res = []
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] !== arr[i - 1]) {
          res.push(arr[i])
        }
      }
      return res
    }
    console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

(11) [1, 1, 2, 2, 3, 3, 4, 6, 7, 8, 9] 'arr'
數(shù)組去重方式第四種220314.html:44 (8) [1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

通過先排序在對相鄰得元素進(jìn)行判斷獲取到對應(yīng)得數(shù)據(jù)結(jié)果

方式五對象屬性去重

實現(xiàn)代碼

  var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
    function ArrayCommon(arr) {
      //判斷是不是數(shù)組  不是數(shù)組就返回一個false
      if (!Array.isArray(arr)) {
        console.log('這不是一個數(shù)組哦')
        return
      }
      let res = [],
        obj = {}
        //如果對象的屬性值不存在 就放進(jìn)去 不然就賦值+1
    for (let i = 0; i < arr.length; i++) {
        if (!obj[arr[i]]) {
            res.push(arr[i])
            obj[arr[i]] = 1
            console.log( obj[arr[i]],"obj[arr[i]]")
        } else {
            obj[arr[i]]++
            console.log( obj[arr[i]],"obj[arr[j]]")
        }
    }
    return res
    }
    console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

[1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

如果對象的屬性值不存在 就放進(jìn)去 不然就賦值1 否則賦值2

方式六set去重

實現(xiàn)代碼

var geyao = [1, 2, 3, 4, 6, 7, 1, 2, 3, 8, 9]
    function ArrayCommon(arr) {
      //判斷是不是數(shù)組  不是數(shù)組就返回一個false
      if (!Array.isArray(arr)) {
        console.log('這不是一個數(shù)組哦')
        return
      }
      return [...new Set(arr)]
    }
    console.log(ArrayCommon(geyao, 'geyao'))

運行結(jié)果

[1, 2, 3, 4, 6, 7, 8, 9]

總結(jié)

通過new set直接進(jìn)行去重了

到此這篇關(guān)于JavaScript中數(shù)組雙重去重的方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript數(shù)組雙重去重內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 微信小程序的mpvue框架快速上手指南

    微信小程序的mpvue框架快速上手指南

    mpvue 是一個使用 Vue.js 開發(fā)小程序的前端框架。這篇文章主要介紹了小程序的mpvue框架 ,需要的朋友可以參考下
    2019-05-05
  • uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)

    uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)

    這篇文章主要為大家介紹了uniapp實現(xiàn)滾動觸底加載項目實戰(zhàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • HTML+CSS+JavaScript實現(xiàn)簡單日歷效果

    HTML+CSS+JavaScript實現(xiàn)簡單日歷效果

    這篇文章主要為大家詳細(xì)介紹了HTML+CSS+JavaScript實現(xiàn)簡單日歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Highcharts使用簡例及異步動態(tài)讀取數(shù)據(jù)

    Highcharts使用簡例及異步動態(tài)讀取數(shù)據(jù)

    Highcharts 是一個用純JavaScript編寫的一個圖表庫, 能夠很簡單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表,并且免費提供給個人學(xué)習(xí)、個人網(wǎng)站和非商業(yè)用途使用,通過本文給大家介紹Highcharts使用簡例及異步動態(tài)讀取數(shù)據(jù)的相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • TypeScript入門-基本數(shù)據(jù)類型

    TypeScript入門-基本數(shù)據(jù)類型

    本文主要介紹了TypeScript基本數(shù)據(jù)類型的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • Javascript將JSON日期格式化

    Javascript將JSON日期格式化

    在做項目中,將實體轉(zhuǎn)化為JSON后,結(jié)果后臺返回json時間格式為/Date(1306418993027)/,在前臺JS里顯示的并不是真正的日期,而且我們不能把所有日期字段都變成string吧,因此寫了Javascript的擴(kuò)展方法,來實現(xiàn)這個功能,代碼如下
    2016-08-08
  • 利用Axios實現(xiàn)無感知雙Token刷新的詳細(xì)教程

    利用Axios實現(xiàn)無感知雙Token刷新的詳細(xì)教程

    在現(xiàn)代系統(tǒng)中,Token認(rèn)證已成為保障用戶安全的標(biāo)準(zhǔn)做法,然而,盡管許多系統(tǒng)采用了這種認(rèn)證方式,卻在處理Token刷新方面存在不足,導(dǎo)致用戶體驗不佳,許多系統(tǒng)未能提供一種無縫的、用戶無感知的Token刷新機(jī)制,所以本文介紹了教你用Axios實現(xiàn)無感知雙Token刷新
    2024-08-08
  • 一個效果寫的HashTable代碼

    一個效果寫的HashTable代碼

    一個效果寫的HashTable代碼...
    2007-03-03
  • JavaScript中json對象和string對象之間相互轉(zhuǎn)化

    JavaScript中json對象和string對象之間相互轉(zhuǎn)化

    json對象和string對象之間的轉(zhuǎn)化已經(jīng)成為了大家耳熟能詳?shù)脑掝},本人今天就多啰嗦一些他們之間的故事,如有不對之處,還請各位海涵呢?不多說了直切主題
    2012-12-12
  • Bootstrap圖片輪播效果詳解

    Bootstrap圖片輪播效果詳解

    這篇文章主要為大家詳細(xì)介紹了Bootstrap圖片輪播效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評論

汽车| 海门市| 福海县| 密山市| 潮州市| 广昌县| 舞钢市| 雷州市| 鱼台县| 保山市| 成安县| 英山县| 临沧市| 合山市| 肃北| 靖江市| 新田县| 富川| 平舆县| 刚察县| 嘉禾县| 古田县| 伊宁县| 来安县| 三台县| 南汇区| 凌云县| 商洛市| 马尔康县| 富民县| 唐海县| 长沙县| 通化市| 垫江县| 满城县| 扶绥县| 淳安县| 额尔古纳市| 渭南市| 调兵山市| 大港区|