数组去重方法

一、利用ES6的Set去重

Array.from方法可以将Set结构转换为数组结果,而我们知道set结果是不重复的数据集,因此能够达到去重的目的

      var arr = [1, 2, 2, 33, 33, 7, 8, 8, 9, 9, 6, 6];

      function unqiueArr(array) {
        var _arr = [];
        return Array.from(new Set(arr));
      }
      console.log(unqiueArr(arr));

二、双重for循环

function unique(arr) {
    if (!Array.isArray(arr)) {
        console.log('type error!')
        return
    }
    let res = [arr[0]]
    for (let i = 1; i < arr.length; i++) {
        let flag = true
        for (let j = 0; j < res.length; j++) {
            if (arr[i] === res[j]) {
                flag = false;
                break
            }
        }
        if (flag) {
            res.push(arr[i])
        }
    }
    return res
}

三、indexOf数组去重

数组的indexOf()方法可返回某个指定的元素在数组中首次出现的位置

function unique(arr) {
    if (!Array.isArray(arr)) {
        console.log('type error!')
        return
    }
    let res = []
    for (let i = 0; i < arr.length; i++) {
        if (res.indexOf(arr[i]) === -1) {
            res.push(arr[i])
        }
    }
    return res
}

 

发表评论 / Comment

用心评论~