數組去重的兩種最經常使用方法

 

第1種 - 哈希法數組

複製代碼
var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
var uniqueHash = function (arr) {
    var res = [];
    var hash = {};
    arr.forEach(function (m) {
        if (!hash[m]) {
            res.push(m);
            hash[m] = true;
        }
    });
    return res;
};
console.log('hash', uniqueHash(arr));
複製代碼

原理:遍歷目標數組,建立一個hash對象將數組的值做爲指針保存起來,若是已經存在就跳過,反之就把這個指針的值設置爲true。post

 

第2種 - 遍歷法spa

複製代碼
var arr = [0,0,1,2,4,3, 3, '3', '3', '我我', '我我', '啊'];
var uniqueKey = function (arr) {
    var res = [];
    arr.forEach(function (m, i) {
        if (m != res[res.length - 1]) {
            res.push(m)
        }
    });
    return res;
};

console.log('key', uniqueKey(arr));
複製代碼

原理:遍歷目標數組,而後push到一個空數組裏面,再逐一對比新的數組裏的每個值,若是相等就跳過,反之就push。指針

相關文章
相關標籤/搜索