這篇文章帶給大家的內容是關於超全面的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中文網其他相關文章!