...">
瀏覽量:114次
數(shù)組去重的5種方法是什么呢?下面就讓我們一起來了解一下吧:
數(shù)組去重的5種方法分別是使用“Array.from(new Set(arr))”去重;利用for嵌套for,接著使用splice()方法去重;利用indexOf()方法去重;利用includes()方法去重;利用filter()方法去重。
參考范例:
1、使用“Array.from(new Set(arr))”去重。
示例代碼為:
var arr = [1,1,8,8,12,12,15,15,16,16];
function unique (arr) {
? return Array.from(new Set(arr))
}
console.log(unique(arr))
?//[1,8,12,15,16]
2、利用for嵌套for,接著使用splice()方法去重。
示例代碼為:
var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];
function unlink(arr) {
? ? for (var i = 0; i < arr.length; i++) {? ? // 首次遍歷數(shù)組
? ? ? ? for (var j = i + 1; j < arr.length; j++) {? ?// 再次遍歷數(shù)組
? ? ? ? ? ? if (arr[i] == arr[j]) {? ? ? ? ? // 判斷連個值是否相等
? ? ? ? ? ? ? ? arr.splice(j, 1);? ? ? ? ? ?// 相等刪除后者
? ? ? ? ? ? ? ? j--;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return arr
}
console.log(unlink(arr));
3、利用indexOf()方法去重。
示例代碼:
var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];
function unlink(arr) {
? ? if (!Array.isArray(arr)) {
? ? ? ? console.log('錯誤!')
? ? ? ? return
? ? }
? ? var array = [];
? ? for (var i = 0; i < arr.length; i++) {? ? // 首次遍歷數(shù)組
? ? ? ? if (array.indexOf(arr[i]) === -1) {? ?// 判斷索引有沒有等于
? ? ? ? ? ? array.push(arr[i])
? ? ? ? }
? ? }
? ? return array
}
console.log(unlink(arr));
4、利用includes()方法去重。
示例代碼:
var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];
function unique(arr) {
? ? if (!Array.isArray(arr)) {
? ? ? ? console.log('type error!')
? ? ? ? return
? ? }
? ? var array =[];
? ? for(var i = 0; i < arr.length; i++) {
? ? ? ? ? ? if( !array.includes( arr[i]) ) {//includes 檢測數(shù)組是否有某個值
? ? ? ? ? ? ? ? ? ? array.push(arr[i]);
? ? ? ? ? ? ? }
? ? }
? ? return array
}
console.log(unique(arr))
5、利用filter()方法去重。
示例代碼:
var arr = [1, 1, 8, 8, 12, 12, 15, 15, 16, 16];
function unlink(arr) {
? ? return arr.filter(function (item, index, arr) {
? ? ? ? //當(dāng)前元素,在原始數(shù)組中的第一個索引==當(dāng)前索引值,否則返回當(dāng)前元素
? ? ? ? return arr.indexOf(item, 0) === index;
? ? });
}
console.log(unlink(arr));
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點,本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們在確認(rèn)后,會立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776