题解 | #数组去重#

数组去重

http://www.nowcoder.com/practice/0b5ae9c4a8c546f79e2547c0179bfdc2

因为数组中包含NaN,而任意NaN不等于NaN,所以indexof无法进行筛选。这里我们可以拿到每一项时用Number.isNaN(item)先判断其是否为NaN,若为NaN,再判断NaN是否第一次出现.出现一次后改成false,洗一次再出现就不算入在内。
主要:用args.indexOf(args[i])遇到NaN永远返回-1,
判断是否是NaN的方法是 Number.isNaN(item)

Array.prototype.uniq = function () {
    let arr=this
    let newArr=[]
    let flag=true
    arr.forEach(item=>{
        if(Number.isNaN(item)&&flag){
           newArr.push(item)
            flag=false
        }
        else if(!Number.isNaN(item)){
            //NaN不等于任何,包括他自身,所以args.indexOf(args[i])遇到NaN永远返回-1
          if(newArr.indexOf(item)==-1)
            newArr.push(item)
        }
    })
    return newArr
}
全部评论
对象{},{}好像没有过滤出去
点赞 回复 分享
发布于 2021-09-23 18:15

相关推荐

不愿透露姓名的神秘牛友
昨天 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
Steven267:这不喷回去?花钱是大爷,记住这个道理
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务