javascript數(shù)組去重方法總結(jié)(推薦)
更新時間:2019年03月20日 16:23:23 作者:風(fēng)語1201
這篇文章主要介紹了javascript數(shù)組去重方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
第一種--對象鍵值去重
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ù)組的,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ù)組下標
// 當(dāng)前數(shù)組的第i項在當(dāng)前數(shù)組第一次出現(xiàn)的位置不是i,當(dā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
}
第五種
// 先排序,找相鄰的項
// 這個會改變原來數(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ù)組
// 獲取沒重復(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;
})
}
以上所述是小編給大家介紹的javascript數(shù)組去重方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
js數(shù)組直接賦值的問題(js數(shù)組的淺拷貝與深拷貝方法)
JS數(shù)組在直接賦值時屬于數(shù)組的淺拷貝,新數(shù)組保存的是原數(shù)據(jù)的內(nèi)存地址,修改新數(shù)組或原數(shù)組其中一個數(shù)組,另一個數(shù)組也會相應(yīng)的變化,數(shù)組的直接賦值屬于數(shù)組的淺拷貝,JS存儲對象都是存內(nèi)存地址2022-10-10
JavaScript SetInterval與setTimeout使用方法詳解
本文講解了JavaScript SetInterval與setTimeout的區(qū)別,并用代碼示例演示了使用方法2013-11-11
JavaScript 學(xué)習(xí)筆記(十三)Dom創(chuàng)建表格
下面弄個實例,運用Dom的知識,實例操作。2010-01-01
MVC+Layui彈出表單模態(tài)框的實現(xiàn)代碼
這篇文章主要介紹了MVC+Layui彈出表單模態(tài)框的實現(xiàn)代碼,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01

