這篇文章給大家分享的是有關(guān)javascript數(shù)組去重方法有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
目前創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、灤南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。第一種--對(duì)象鍵值去重
Array.prototype.unique1 = function () { var r = {}, temp = [] for (var i = 0; i < this.length; i++) { if (!r[this[i]]) { r[this[i]] = 1 temp.push(this[i]) } } return temp }
第二種--splice刪除去重
Array.prototype.unique2 = function () { for (var i = 0; i < this.length; i++) { for (var j = i + 1; j < this.length; j++) { if (this[i] === this[j]) { this.splice(j, 1) j-- } } } return this }
第三種--利用數(shù)組indexOf方法
// 循環(huán)遍歷當(dāng)前數(shù)組,當(dāng)前不在臨時(shí)數(shù)組的,push Array.prototype.unique3 = function () { var temp = [] for (var i = 0; i < this.length; i++) { if (temp.indexOf(this[i]) === -1) temp.push(this[i]) } return temp }
第四種--數(shù)組下標(biāo)
// 當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組第一次出現(xiàn)的位置不是i,當(dāng)前項(xiàng)即重復(fù),反之 Array.prototype.unique4 = function () { var temp = [this[0]] for (var i = 1; i < this.length; i++) { if (this.indexOf(this[i]) === i) temp.push(this[i]) } return temp }
第五種
// 先排序,找相鄰的項(xiàng) // 這個(gè)會(huì)改變?cè)瓉?lái)數(shù)組的順序 Array.prototype.unique5 = function () { var tempArr = this.sort(), temp = [tempArr[0]] for (var i = 1; i < tempArr.length; i++) { if (tempArr[i] !== temp[temp.length - 1]) temp.push(tempArr[i]) } return temp }
第六種
// 優(yōu)化遍歷數(shù)組 // 獲取沒(méi)重復(fù)的最右一值放入新數(shù)組 Array.prototype.unique6 = function () { var temp = [] for (var i = 0; i < this.length; i++) { for (j = i + 1; j < this.length; j++) { if (this[i] === this[j]) { i++; j = i; } } temp.push(this[i]) } return temp }
第七種--es6 set
Array.prototype.unique7 = function () { var temp = new Set(this) return [...temp] }
第八種--filter
Array.prototype.unique8 = function () { return this.filter(function (ele, index, self) { return self.indexOf(ele) === index; }) }
感謝各位的閱讀!關(guān)于“javascript數(shù)組去重方法有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!