js 为 Array 对象添加一个去除重复项的方法
题目描述
为 Array 对象添加一个去除重复项的方法
输入
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]
输出
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a']
解决
Array.prototype.uniq = function () {
let res = []
let hasNaN = false
this.forEach(e => { // 循环数组
if(res.indexOf(e) === -1) { // res中没有就添加
if(e !== e) { // 判断是否为NAN,因为精度的原因,NaN === NaN返回false
if(!hasNaN) {
res.push(e)
hasNaN = true
}
} else {
res.push(e)
}
}
})
return res
}

浙公网安备 33010602011771号