在閱讀本文前,建議先去看我寫的《十種方法解決--- 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條不同的資料,而如果在後...