front-end-pigs / blog

博客
2 stars 0 forks source link

数组去重 #38

Open jangdelong opened 4 years ago

jangdelong commented 4 years ago

将数组 [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}] 进行去重,去重结果为 [1, 'true', true,15,false, undefined, null, NaN, 'NaN', 0, 'a',{}]

题目有点小变态,使用常规的简单去重方法应该是搞不赢。

jangdelong commented 4 years ago

方法一:

function unique (arr) {
  return [ ...new Set(arr) ]
}

缺点:对象{}无法去重。

kaiziwen commented 3 years ago
function unique (arr) {
    var obj = {}
    return arr.filter(item => {
        return obj.hasOwnProperty(typeof item + item) ? false : obj[typeof item + item] = true
    })
}