简单记录js数组去重的几种方式。

    科技2024-11-15  13

    1.es6的set去重

      

    function unique(arr){ return [...new Set(arr)]; }

    2.indexO或者includesf去重,

       

    function unique(arr){ if( arr instanceof Array !== true) { console.log('type error'); return; } let result = []; for(let i = 0;i<arr.length;i++) { if(result.indexOf(arr[i]) === -1) { result.push(arr[i]); } } return result; }

    3.splice去重

     

    function unique(arr){ if( arr instanceof Array !== true) { console.log('type error'); return; } let result = []; for(let i = 0;i<arr.length;i++) { for (let j=i+1;j<arr.length;j++) { if(arr[i] === arr[j]) { arr.splice(j,1); j--; } } } return arr; }

    4.使用sort排序,但是会改变顺序

    function unique(arr){ if( arr instanceof Array !== true) { console.log('type error'); return; } if( arr.length <= 1) { return arr; } arr = arr.sort(); let j,i; for( j=0, i = 1;i < arr.length;i++) { if(arr[i] !== arr[j]) { arr[++j] = arr[i]; } } arr.length = j+1; return arr; }

    5.使用filter

    function unique(arr){ if( arr instanceof Array !== true) { console.log('type error'); return; } return arr.filter((ele,index)=>{ return arr.indexOf(ele) === index }) return arr; }

     

    Processed: 0.032, SQL: 8