<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          12種解決數(shù)組去重的方案

          共 738字,需瀏覽 2分鐘

           ·

          2020-08-27 09:49


          兜個(gè)小圈 先總結(jié)一下我們數(shù)組的方法:

          • pop

          • push

          • shift

          • unshift

          • slice

          • splice

          • sort

          • reverse

          • concot

          • join

          • indexOf

          • lastIndexOf

          • map

          • forEach

          還有其他可以處理數(shù)組的幾個(gè)方法~

          – includes:返回一個(gè)布爾值,如果存在返回false

          – find:返回第一次找到的那一項(xiàng)

          – some:返回一個(gè)布爾值,只要一個(gè)是true,就返回true

          – every:返回一個(gè)布爾值,需要每一項(xiàng)都是true,才返回true

          – filter:返回一個(gè)過(guò)濾后的新數(shù)組;如果返回true就留下,false就過(guò)濾掉

          – reduce:收斂

          下面我們進(jìn)入正題~(希望能對(duì)你有幫助~小編有點(diǎn)皮!!哈哈哈哈哈哈)

          01、set :不是一種數(shù)據(jù)類型,是一種數(shù)據(jù)結(jié)構(gòu);成員唯一

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let s = new Set(ary); // Array.from : 將set數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)成真正的數(shù)組; return Array.from(s) } unique(arr);

          02、對(duì)象屬性名不能重復(fù)

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let obj = {}; for(let i=0;i let cur = ary[i]; if(obj[cur]){ //ary.splice(i,1);// 導(dǎo)致數(shù)組塌陷 ary[i]=ary[ary.length-1]; ary.length--;// 刪除最后一項(xiàng) i--; continue; } obj[cur]=cur;// 給obj新增鍵值對(duì);屬性名和屬性值是一樣的 } } unique(arr);
          03、indexOf
          let arr = [12,1,12,3,1,88,66,9,66]; function unique(ary) { let newAry = []; for(let i=0;i let cur = ary[i]; if(newAry.indexOf(cur)===-1){ newAry.push(cur); } } return newAry; } unique(arr)
          04、sort
          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let a = ary.sort(function (a,b) { return a-b; }); for(let i=0;i if(a[i]===a[i+1]){ a.splice(i+1,1); i--; } } return a; } unique(arr)

          05、includes :包含;如果數(shù)組包含那一項(xiàng),返回true;不包含返回false;

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let newAry = []; let len = ary.length; for(let i=0;i let cur = ary[i]; if(!newAry.includes(cur)){ newAry.push(cur); } } return newAry; } console.log(unique(arr));

          06、hasOwnProperty : 檢測(cè)屬性名是否是對(duì)象的一個(gè)私有屬性;返回一個(gè)布爾值;

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let obj = {}; return ary.filter(function (item,index,a) { // item : 數(shù)組每一個(gè)成員 // index: 成員對(duì)應(yīng)的索引 // a : 整個(gè)數(shù)組 // hasOwnProperty來(lái)校驗(yàn)的該屬性是否出現(xiàn)過(guò); return obj.hasOwnProperty(typeof item+item)?false:obj[typeof item+item]=true; if(obj.hasOwnProperty(typeof item+item)){ return false }else{ obj[typeof item+item]=true; return true; } }) } console.log(unique(arr))

          07、filter+indexOf

          let arr = [12,1,12,3,1,88,66,9,66]; function unique(ary) { return ary.filter(function (item,index,a) { return ary.indexOf(item)===index; }) } console.log(unique(arr));

          08、splice

          let arr = [12,1,12,3,1,88,66,9,66]; function unique(ary) { for(let i=0;i for(j=i+1;j if(ary[i]===ary[j]){ ary.splice(j,1); j--; } } } return ary; } unique(arr);

          09、遞歸

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let len= ary.length; ary = ary.sort(function (a,b) { return a-b; }); function loop(index) { if(index>=1){ if(ary[index]===ary[index-1]){ ary.splice(index,1); } loop(index-1) } } loop(len-1); return ary; } console.log(unique(arr));

          10、Map :利用了Map數(shù)據(jù)結(jié)構(gòu)存值的特點(diǎn);

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { let newAry =[]; let map = new Map(); for(let i=0;i if(!map.has(ary[i])){ map.set(ary[i],true); newAry.push(ary[i]); } } } unique(arr);

          11、reduce

          let arr = [12,1,12,3,1,88,66,9,66];function unique(ary) { // reduce : 第一個(gè)是函數(shù),第二個(gè)參數(shù)會(huì)傳給第一次回調(diào)的prev; return ary.reduce((prev,next)=>{ // 該函數(shù)返回值是下一次執(zhí)行的prev; return prev.includes(next)?prev:[...prev,next]; },[]) } console.log(unique(arr));

          12、類似于方法一的set,用了剩余運(yùn)算符…

          let arr = [12,1,12,3,1,88,66,9,66]; let a = [...new Set(arr)]; console.log(a);

          瀏覽 47
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久草视频免费在线播放 | 国产成人精品电影 | 2017夜夜撸 | 韩国毛片久久 | 无人无码深夜久久 |