因为数组中包含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
}