1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function unique(array) { if (Array.isArray(array) && array.length > 0) { var arr = [] for (var i = 0; i < array.length; i++) { if (arr.indexOf(array[i]) == -1) { arr.push(array[i]) } } return arr } else { return false } }
var arr = [2, 4, 66, 55, 33, 55, 3, 4, 4, 32, 2] console.log(unique(arr))
|
也可以将去重函数挂载在数组原型上,拓展了数组的基本方法,省去了判断参数类型的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Array.prototype.unique = function() { var res = [] var json = {} for (var i = 0; i < this.length; i++) { if (!json[this[i]]) { res.push(this[i]) json[this[i]] = 1 } } return res }
var arr = [2, 4, 66, 55, 33, 55, 3, 4, 4, 32, 2] console.log(arr.unique())
|
最简单的实现
如果使用 es6 ,使用 set 可以快速实现
1 2 3
| function dedupe(arr) { return [...new Set(arr)] }
|