1.es6 语法 new Set()

function unique(arr){
  return new Set(arr)
}

2.对数组进行排序,然后两两比较法

function unique(arr){
    //sort 对数组进行排序
    arr.sort(function(a,b){
        return a-b
    })
    //定义新数组
    var newArr = [arr[1]]
    //遍历数组
    for(var i = 0;i<arr.length;i++){
        //将newArr 的最后一项与数组的单项进行对比,相等则添加到新数组
        if(newArr[newArr.length - 1] !== arr[i])newArr.push(arr[i]);
    }
    return newArr
}

3.利用对象属性的唯一性

function unique(arr){
    var obj = {},newArr=[]
    for(var i = 0;i<arr.length;i++){
        //判断obj 是否有arr[i]的属性
        if(!obj[arr[i]]){
            obj[arr[i]] = 1
            newArr.push(arr[i])
        }
    }
    return newArr
}

4.indexOf方法可返回某个指定的字符串值在字符串中首次出现的位置,没有则返回-1

function unique(arr){
    var newArr = []
    for(var i = 0;i<arr.length;i++){
        if(newArr.indexOf(arr[i])<0){
            newArr.push(arr[i])
        }
    }
    return newArr
}

RocChan
46 声望1 粉丝

代码改变师姐