1、方法一
使用Set
let unique_1 = arr => [...new Set(arr)];
2、方法二
使用filter
function unique_2(array) {
var res = array.filter(function (item, index, array) {
return array.indexOf(item) === index;
})
return res;
}
3、方法三
使用reduce
let unique_3 = arr => arr.reduce((pre, cur) => pre.includes(cur) ? pre : [...pre, cur], []);
等同于
let unique_3 = function(arr){
return arr.reduce(function(a,b){
return a.includes(b) ? a : [...a, b]
},[])
}
4、方法四
创建一个空的对象
function unique_4(array) {
var obj = {};
return array.filter(function (item, index, array) {
return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
})
}
5、方法五
创建一个空数组,判断其中的成员是否重复
function unique_5(array) {
var arr = [];
array.forEach(function (item, index, array) {
arr = arr.includes(item) ? arr : [...arr, item]
})
return arr
}
6、方法六
function unique_6(array) {
var obj = {};
array.forEach(function (item, index, array) {
obj[typeof(item) + item] = item
})
return Object.values(obj)
}