首頁 >web前端 >js教程 >超全面的JavaScript數組去重的12種方法總結

超全面的JavaScript數組去重的12種方法總結

不言
不言原創
2018-09-17 13:57:111407瀏覽

這篇文章帶給大家的內容是關於超全面的JavaScript陣列去重的12種方法總結,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

陣列去重,通常在面試的時候才會碰到,通常是要求手寫陣列去重方法的程式碼。如果是被問到,陣列去重的方法有哪些?你能答出其中的10種,面試官很有可能會對你刮目相看。
在真實的專案中碰到的陣列去重,通常都是後台去處理,很少讓前端處理陣列去重。雖然日常專案用到的機率比較低,但還是需要了解一下,以防面試的時候可能回被問到。

陣列去重的方法

一、利用ES6 Set去重(ES6中最常用)

function unique (arr) {
  return Array.from(new Set(arr))
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
 //[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]

不考慮相容性,這種去重的方法程式碼最少。這種方法還無法去掉「{}」空對象,後面的高階方法會加去去掉「{}」空對象。

二、利用for巢狀for,然後splice去重(ES5中最常用)

function unique(arr){            
        for(var i=0; i16a7e4e4457930a4fe83f5123a9db479= 1){
            if(arrry[index] === arrry[index-1]){
                arrry.splice(index,1);
            }
            loop(index - 1);    //递归loop,然后数组去重
        }
    }
    loop(len-1);
    return arrry;
}

十、利用Map資料結構去重

function arrayNonRepeatfy(arr) {
  let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i 9eba94082b5f886e46def8554754c17c {
    if(s1 !== s2){
      array .push(s1);
    }
    return s2;
  })
  array .push(sortArr[sortArr.length - 1]);
  return array ;
}

2、[...new Set(arr)]

[...new Set(arr)] 
//代码就是这么少----(其实,严格来说并不算是一种,相对于第一种方法来说只是简化了代码)

PS:有些文章提到了foreach indexOf數組去重的方法,個人覺得都是大同小異,所以沒有寫上去。

#

以上是超全面的JavaScript數組去重的12種方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn