yanghana

去重(性能由高到低)

一、New Set()

let arr = [1,1,\'true\',\'true\',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,\'NaN\', 0, 0, \'a\', \'a\',{},{}];
function unique(arr) {
    return Array.from(new Set(arr));
}
console.log(unique(arr));// [1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {…}, {…}]

 

二、Array.sort()

function unique(arr) {
    arr = arr.sort();
    let array = [arr[0]];
    for (let i = 1; i < arr.length; i++) {
        if (arr[i] !== arr[i-1]) {
            array.push(arr[i]);
        }
    }
    return array;
}
console.log(unique(arr));//[0, 1, 15, NaN, NaN, "NaN", {…}, {…}, "a", false, null, "true", true, undefined]

 

三、Array.indexOf()

function unique(arr) {
    let array = [];
    for (let i = 0; i < arr.length; i++) {
        if (array.indexOf(arr[i]) === -1) {
            array.push(arr[i]);
        }
    }
    return array;
}
console.log(unique(arr));//[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

 

四、双重for循环

function unique(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = i+1; j < arr.length; j++) {
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--;
            }
        }
    }
    return arr;
}
console.log(unique(arr)); //[1, "true", true, 15, false, undefined, null, NaN, NaN, "NaN", 0, "a", {…}, {…}]

 

 

分类:

技术点:

相关文章:

  • 2022-03-02
  • 2018-01-11
  • 2021-10-01
  • 2021-05-14
  • 2021-06-09
  • 2021-11-01
猜你喜欢
  • 2021-11-01
  • 2018-04-28
  • 2021-11-01
  • 2021-12-09
  • 2021-12-13
  • 2021-07-30
相关资源
相似解决方案