<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        js數(shù)組去重的方法總結(jié)

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:01:53
        文檔

        js數(shù)組去重的方法總結(jié)

        js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡(jiǎn)單的去重方法 // 最簡(jiǎn)單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進(jìn)該新數(shù)組中 * IE8以下不支持?jǐn)?shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個(gè)新的臨時(shí)數(shù)組 for(v
        推薦度:
        導(dǎo)讀js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡(jiǎn)單的去重方法 // 最簡(jiǎn)單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進(jìn)該新數(shù)組中 * IE8以下不支持?jǐn)?shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個(gè)新的臨時(shí)數(shù)組 for(v

        一、普通的方法去重

        1、簡(jiǎn)單的去重方法

        // 最簡(jiǎn)單數(shù)組去重法
        /*
        * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進(jìn)該新數(shù)組中
        * IE8以下不支持?jǐn)?shù)組的indexOf方法
        */
        function uniq(array){
         var temp = []; //一個(gè)新的臨時(shí)數(shù)組
         for(var i = 0; i < array.length; i++){
         if(temp.indexOf(array[i]) == -1){
         temp.push(array[i]);
         }
         }
         return temp;
        }
        var newArray = [1,2,2,4,9,6,7,5,2,3,5,6,5];
        console.log(uniq(newArray));// [1, 2, 4, 9, 6, 7, 5, 3]
        /*
        var newArray = ['mu','zi','dig','big','z','mu','zi','muzidigbig']
        console.log(uniq(newArray));//["mu", "zi", "dig", "big", "z", "muzidigbig"]
        */

        2、數(shù)組下標(biāo)法

        /*
        * 還是得調(diào)用“indexOf”性能跟方法1差不多,
        * 實(shí)現(xiàn)思路:如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i,
        * 那么表示第i項(xiàng)是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組。
        */
        function uniq(array){
         var temp = [];
         for(var i = 0; i < array.length; i++) {
         //如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置是i,才存入數(shù)組;否則代表是重復(fù)的
         if(array.indexOf(array[i]) == i){
         temp.push(array[i])
         }
         }
         return temp;
        }
        var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
        console.log(uniq(aa));//[1, 2, "2", 4, 9, "a", 3, 5, 6]

        3、排序后相鄰去除法

        /*
        * 給傳入數(shù)組排序,排序后相同值相鄰,
        * 然后遍歷時(shí),新數(shù)組只加入不與前一值重復(fù)的值。
        * 會(huì)打亂原來(lái)數(shù)組的順序
        */
        function uniq(array){
         array.sort();
         console.log(array.sort());
         var temp=[array[0]];
         for(var i = 1; i < array.length; i++){
         if( array[i] !== temp[temp.length-1]){
         temp.push(array[i]);
         }
         }
         return temp;
        }
        var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
        console.log(uniq(aa));//[1, "2", 2, 3, 4, 5, 6, 9, "a"]

        4、優(yōu)化遍歷數(shù)組法

        // 思路:獲取沒(méi)重復(fù)的最右一值放入新數(shù)組
        /*
        * 推薦的方法
        * 方法的實(shí)現(xiàn)代碼相當(dāng)酷炫,
        * 實(shí)現(xiàn)思路:獲取沒(méi)重復(fù)的最右一值放入新數(shù)組。
        * (檢測(cè)到有重復(fù)值時(shí)終止當(dāng)前循環(huán)同時(shí)進(jìn)入頂層循環(huán)的下一輪判斷)
        */
        function uniq(array){
         var temp = [];
         var index = [];
         var l = array.length;
         for(var i = 0; i < l; i++) {
         for(var j = i + 1; j < l; j++){
         if (array[i] === array[j]){
         i++;
         j = i;
         }
         }
         temp.push(array[i]);
         index.push(i);
         }
         console.log(index);//[0, 2, 5, 6, 7, 8, 9]
         return temp;
        }
        var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
        console.log(uniq(aa));// [1, 2, 3, 6, 5, "3", "muzi"]

        5.數(shù)組includes()去重

        //利用數(shù)組原型對(duì)象上的includes方法
        function unique(arr){
         var bArr= [];
         for(var i=0; i<arr.length; i++){
         if( !bArr.includes(arr[i]) ){ // 如果bArr新數(shù)組包含當(dāng)前循環(huán)item
         bArr.push(arr[i]);
         }
         }
         return bArr;
        }
        var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
        console.log(unique(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

        6.數(shù)組原型對(duì)象上的filter和includes方法

        //利用數(shù)組原型對(duì)象上的filter和includes方法
        function unique6(arr){
         var bArr= [];
         bArr= arr.filter(function(item){
         return bArr.includes(item) ? null : bArr.push(item);
         });
         return bArr;
        }
        var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
        console.log(unique6(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

        7.數(shù)組原型對(duì)象上的forEach和includes方法

        //利用數(shù)組原型對(duì)象上的forEach和includes方法
        function unique7(arr){
         var bArr= [];
         arr.forEach(function(item){
         bArr.includes(item) ? null : bArr.push(item);
         }); 
         return bArr;
        }
        var aa = [1,2,2,3,5,3,6,5,'3','muzi'];
        console.log(unique7(aa))//[1, 2, 3, 5, 6, "3", "muzi"]

        二、原型對(duì)象去重

        方法一:

        思路:1)構(gòu)建一個(gè)臨時(shí)數(shù)組存放結(jié)果;

                    2)循環(huán)遍歷當(dāng)前數(shù)組,判斷當(dāng)前數(shù)組下標(biāo)為i的元素是否已經(jīng)保存在臨時(shí)數(shù)組,如果已保存,則跳過(guò),否則將此元素保存到臨時(shí)數(shù)組中。

         Array.prototype.method1 = function(){
         var arr=[]; //定義一個(gè)臨時(shí)數(shù)組
         for(var i = 0; i < this.length; i++){ //循環(huán)遍歷當(dāng)前數(shù)組
         //判斷當(dāng)前數(shù)組下標(biāo)為i的元素是否已經(jīng)保存到臨時(shí)數(shù)組
         //如果已保存,則跳過(guò),否則將此元素保存到臨時(shí)數(shù)組中
         if(arr.indexOf(this[i]) == -1){
         arr.push(this[i]);
         }
         }
         return arr;
         };
         var arrNum1 = [1,4,1,1,3,3,4,6,7,8,3,7,0,2,11,2,'muzi','digbig','muzi'];
         console.log(arrNum1.method1());//[1, 4, 3, 6, 7, 8, 0, 2, 11, "muzi", "digbig"]

        三、es6去重

         let arr = [1,2,2,3,4,4,4];
         let s = new Set(arr);
         //結(jié)果:Set {1,2,3,4}
         let newArr = Array.from(s);
         //結(jié)果:[1,2,3,4],完成去重

        若有不足請(qǐng)多多指教!希望給您帶來(lái)幫助!

        總結(jié)

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        js數(shù)組去重的方法總結(jié)

        js數(shù)組去重的方法總結(jié):一、普通的方法去重 1、簡(jiǎn)單的去重方法 // 最簡(jiǎn)單數(shù)組去重法 /* * 新建一新數(shù)組,遍歷傳入數(shù)組,值不在新數(shù)組就push進(jìn)該新數(shù)組中 * IE8以下不支持?jǐn)?shù)組的indexOf方法 */ function uniq(array){ var temp = []; //一個(gè)新的臨時(shí)數(shù)組 for(v
        推薦度:
        標(biāo)簽: 方法 js 總結(jié)
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产综合专区在线电影| 久热综合在线亚洲精品| 自拍偷自拍亚洲精品偷一| 青娱分类视频精品免费2| 亚洲av无码一区二区三区天堂古代 | 国产亚洲综合成人91精品| 一级做a爰性色毛片免费| 亚洲一区无码精品色| eeuss草民免费| 亚洲av无码精品网站| 最近在线2018视频免费观看| 亚洲理论片在线观看| 免费精品国产自产拍在| 亚洲高清一区二区三区| 免费国产真实迷j在线观看| 免费国产在线精品一区| 狠狠色伊人亚洲综合成人| 1000部啪啪毛片免费看| 亚洲偷偷自拍高清| 国产禁女女网站免费看| 一个人看的在线免费视频| 久久精品国产亚洲AV果冻传媒 | 毛片免费在线观看网址| 国产91成人精品亚洲精品| 国产亚洲av人片在线观看| 91久久青青草原线免费| 亚洲欧美中文日韩视频| 曰韩亚洲av人人夜夜澡人人爽 | 丁香花在线观看免费观看| 日本高清免费中文在线看| 国产AV无码专区亚洲AVJULIA | 免费无码午夜福利片 | 亚洲日韩AV无码一区二区三区人 | 国产aⅴ无码专区亚洲av麻豆 | 日韩在线看片免费人成视频播放| 老外毛片免费视频播放| 亚洲视频在线免费观看| 国产小视频免费观看| 久久午夜无码免费| 美女露隐私全部免费直播| 亚洲成色999久久网站|