乐趣区

常见的数组去重方法

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
}
退出移动版