陣列去重 創造 101 種方法(上)

2021-08-22 01:15:34 字數 2824 閱讀 6301

在閱讀本文前,建議先去看我寫的《十種方法解決--- 1-100累加和》,其實陣列去重跟這個思路很相似!

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];
利用 陣列如果不存在該項,indexof = -1

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function demo1(ary)

console.log(res.sort((a,b)=>a-b));

}demo1(arr);

結果:["大唐", 0, false, "false", null, "盛世", "1", true, 1, 2, 3, 4, 5, 6, "6", 7, 8, 9, 10, undefined]

陣列每一項只有唯一的索引值。

這個方法有個缺點,就是結果會把所有值,轉換成字串型別

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function demo2(ary)

for (j in cur)

console.log(res.sort((a,b)=>a-b));

}demo2(arr);

結果:["0", "1", "10", "2", "3", "4", "5", "6", "7", "8", "9", "false", "null", "true", "undefined", "大唐", "盛世"]

* 以上方法,現簡化成:

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function unique(ary),res=;

for(let i of ary)

} return res.sort((a,b)=>a-b);

}console.log(unique(arr));

物件內屬性名只能存在唯一的乙個,同樣屬性名,後面會覆蓋前面的屬性值

如:var obj = ;  console.log(obj.a); //結果:3

缺點同例2,會轉換成字串型別

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function demo3(ary),

res = ;

for (i in ary)

for(j in cur)

console.log(res.sort((a,b)=>a-b));

} demo3(arr);

結果:["0", "1", "10", "2", "3", "4", "5", "6", "7", "8", "9", "false", "null", "true", "undefined", "大唐", "盛世"]

* 以上方法,現簡化成:

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function unique(ary),res=;

for(let i of ary)

} return res.sort((a,b)=>a-b)

}console.log(unique(arr))

利用兩個 for 遍歷出的值,進行對比,刪除重複項

這一句很關鍵:len = ary.length; 因為 陣列的長度在不斷變化中。

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

//arr = arr.sort(); //可省略

function demo4(ary)

} console.log(res.sort((a,b)=>a-b));

} demo4(arr);

結果:[0, "1", 1, 10, 2, 3, 4, 5, "6", 6, 7, 8, 9, false, "false", null, true, "大唐", "盛世", undefined]

通過排序,然後 當前項 對比 上一項,如果不同則新增到陣列

var arr =['大唐',1,3,2,5,9,"1",5,4,7,0,10,6,8,"大唐","盛世","6",null,undefined,false,true,"false"];

function demo5(ary)

return init;

},);

console.log(res);

}demo5(arr);

結果:[0, "1", 1, 10, 2, 3, 4, 5, "6", 6, 7, 8, 9, false, "false", null, true, "大唐", "盛世", undefined]

《陣列去重 -  創造 101 種方法 (下)》

JavaScript陣列去重12種方法

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

JavaScript陣列去重(12種方法)

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

7種方法實現陣列去重

去重是開發中經常會碰到的乙個熱點問題,不過目前專案中碰到的情況都是後台介面使用sql去重,簡單高效,基本不會讓前端處理去重。那麼前端處理去重會出現什麼情況呢?假如每頁顯示10條不同的資料,如果資料重複比較嚴重,那麼要顯示10條資料,可能需要傳送多個http請求才能夠篩選出10條不同的資料,而如果在後...