数组去重

96 阅读1分钟

版本(一)

缺点: 此版本最为差劲,是我第一次初步写的时候想出来的,非常非常差劲,不忍直视


let array = [1, 5, 2, 3, 4, 2, 3, 1, 3, 4];
function unique(array){
    let array2 = [];
    for (let i = 0; i < array.length; i++) {
        if (((array[i] !== array2[0]) && (array[i] !== array2[1]) && (array[i] !== array2[2]) &&
             (array[i] !== array2[3]) && (array[i] !== array2[4]) && (array[i] !== array2[5]) &&
             (array[i] !== array2[6]) && (array[i] !== array2[7]) && (array[i] !== array2[8])&&(array[i] !== array2[9])) === true){
            array2.push(array[i])
        }else {}
    }
    return console.log(array2)
}
unique(array)

版本(二)

缺点:耗时耗力得不偿失 此版本使用了冒泡排序,然后在两两对比,删除相同的数组,只有留下不同数组

let array = [1, 5, 2, 3, 4, 2, 3, 1, 3, 4];
function unique(array) {
    let array1 = array.sort();
    for (let i = 0; i < array1.length - 1; i++) {
        for (let j = 0; j < array1.length - 1 - i; j++) {
            if (array1[j] === array1[j + 1]) {
                array1.splice(j + 1, 1);
                j = j - 1;
            } else {
            }
        }
    }
    return console.log(array1);
}
unique(array);

版本(三)

使用了set,借助他的特效实现去重

let    array = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
    let set = new Set();
    for (let i = 0; i < array.length; i++) {
        set.add(array[i]);
    }
   return   console.log(set)
}

unique(array)

版本(四)

使用了map,缺点是对象不可以去重

let array = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
    let map = new Map();
    let a = new Array();
    for (let i = 0; i < array.length; i++) {
        if ((map.has(array[i])) === false) {
            map.set(array[i], true);
            a.push(array[i])
        } else {
        }
    }
     return console.log(a)
}
unique(array)