js数据去重

我用过的数组去重的方式有哪些?

答:

  1. 利用Set:

    1
    2
    3
    4
    var a = [1,2,3,4,6], b = [1,4,5,6,7,8];
    var set = new Set(a.concat(b));
    // 或者 var set = new Set(a.concat(b));
    console.log(...set);
  2. 时间复杂度M+N

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var a = [1,2,3,4,6], b = [1,4,5,6,7,8];
    var obj = {};
    for(var i = 0; i < a.length; i++) {
    var temp = a[i];
    obj[temp] = true;
    }
    for(var j = 0; j < b.length; j++) {
    var temp = b[j];
    if(!(obj[temp])) {
    a.push(temp);
    }
    }
    console.log(a);
  3. 时间复杂度M or N

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var a = [1,2,3,4,6], b = [1,4,5,6,7,8];
    var newArr = b.slice(0);
    for(var j = 0; j < a.length; j++) {
    const temp = a[i];
    if(newArr.indexOf(temp) < 0) {
    newArr.push(temp);
    }
    }
1
2
3
4
5
6
7
8
9
var a = [1,2,3,4,6], b = [1,4,5,6,7,8];
var newArr = a.slice(0);
for(var j = 0; j < b.length; j++) {
const temp = b[j];
if(newArr.indexOf(temp) < 0) {
newArr.push(temp);
}
}