题解 | #数组去重#

数组去重

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

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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