第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。指針