利用语法自身键不可重复性
1、利用ES6的set
Set数据结构,它类似于数组,其成员的值都是唯一的。
利用Array.from将Set结构转换成数组
function unique (arr) {
return Array.from(new Set(arr))
}
拓展运算符(...)内部使用for...of循环
return [...new Set(arr)]
缺点:不能对对象类型数据去重
2、利用hasOwnProperty
function unique(arr) {
var obj = {};
return arr.filter(function(item, index, arr){
return obj.hasOwnProperty(typeof item + item) ?
false
:
(obj[typeof item + item] = true)
})
}
缺点:不能区分不同的对象。{a:1}和 {b:2}视为相同去重。
3、利用对象的属性不能相同
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var arrry= [];
var obj =