這篇文章主要講解了“JavaScrip數(shù)組去重的方法有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“JavaScrip數(shù)組去重的方法有哪些”吧!
創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都網(wǎng)站建設(shè)、網(wǎng)站制作項(xiàng)目的能力。經(jīng)過十年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。
本文實(shí)例講述了JavaScrip數(shù)組去重操作。分享給大家供大家參考,具體如下:
內(nèi)置的for-of方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var arr=[2,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null]; function uniqueUseForOf(array) { const temp = []; //一個(gè)臨時(shí)數(shù)組 // 傳入值必須存在,且長度小于等于1的時(shí)候直接返回?cái)?shù)組 if (array && array.length <= 1) { return array; } else { //遍歷當(dāng)前數(shù)組 for (let x of array) { temp.indexOf(x) === -1 ? temp.push(x) : ''; } } return temp; } uniqueUseForOf(arr); console.log(uniqueUseForOf(arr)) |
內(nèi)置的forEach方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var arr=[3,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null]; function uniqueUseForEach(array) { // 傳入值必須存在,且長度小于等于1的時(shí)候直接返回?cái)?shù)組 if (array && array.length <= 1) { return array; } else { var temp = []; //一個(gè)臨時(shí)數(shù)組 //遍歷當(dāng)前數(shù)組 array.forEach(function (value, index) { temp.indexOf(value) == -1 ? temp.push(value) : ''; }) return temp; } } uniqueUseForEach(arr); console.log(uniqueUseForEach(arr)) |
萬能的for方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var arr=[1,1,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null]; function uniqueUseFor(array) { var temp = []; //一個(gè)臨時(shí)數(shù)組 //遍歷當(dāng)前數(shù)組 for (var i = 0, j = array.length; i < j; i++) { //很直白,新數(shù)組內(nèi)判斷是否有這個(gè)值,沒有的情況下,就推入該新數(shù)組 temp.indexOf(array[i]) === -1 ? temp.push(array[i]) : ''; } return temp; } uniqueUseFor(arr); console.log(uniqueUseFor(arr)) |
第一種方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var arr = [1, 2, 3, 4, 1, 2, 4, 5, 6]; console.log(arr); Array.prototype.unique = function() { var n = [this[0]]; //結(jié)果數(shù)組 for(var i = 1; i < this.length; i++) //從第二項(xiàng)開始遍歷 { //如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i, //那么表示第i項(xiàng)是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組 if(this.indexOf(this[i]) == i) n.push(this[i]); } return n; }; console.log(arr.unique()); |
第二種方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var arr = [1,2,3,4,1,2,4,5,6]; console.log(arr); Array.prototype.unique = function() { var n = {}, r = []; //n為hash表,r為臨時(shí)數(shù)組 for (var i = 0; i < this.length; i++) { //遍歷當(dāng)前數(shù)組 if (!n[this[i]]) { //如果hash表中沒有當(dāng)前項(xiàng) n[this[i]] = true; //存入hash表 r.push(this[i]); //把當(dāng)前數(shù)組的當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面 } } return r; }; console.log(arr.unique()); |
感謝各位的閱讀,以上就是“JavaScrip數(shù)組去重的方法有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對JavaScrip數(shù)組去重的方法有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!