# 数组去重

# 快速导航

  • # 方法 1-indexOf 方法去重

将原数组中的元素和结果数组中的元素一一比较

点击即可查看数组去重
function unique(arr) {
  if (!Array.isArray(arr)) {
    return;
  }
  var newArr = [];
  for (var i = 0; i < arr.length; i++) {
    if (newArr.indexOf(arr[i]) === -1) {
      newArr.push(arr[i]);
    }
  }

  return newArr;
}
let arrs = ['hello', 'java', 'JavaScript', 'CSS', 'java', 'Es6'];
console.log(unique(arrs));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • # 方法 2-filter 结合 indexOf

点击即可查看
function unique(arr) {
  var res = arr.filter(function(item, index, array) {
    return array.indexOf(item) === index;
  });
  return res;
}

var a = ['java', 'linux', 'javaScript', 'linux', 'centos', 'centos'];

console.log(unique(a)); // ["java", "linux", "javaScript", "centos"]
1
2
3
4
5
6
7
8
9
10
  • # 方法 3-Es6 中的拓展运算符

点击即可查看
function noRepeat(arr) {
  return [...new Set(arr)];
}

var arrs = ['java', 'linux', 'javaScript', 'linux', 'centos', 'centos'];
console.log(noRepeat(arrs));
1
2
3
4
5
6
  • # 方法 4-Array.from 结合 new Set

点击即可查看
function noRepeat(arr) {
  return Array.from(new Set(arr));
}

var arrs = ['java', 'linux', 'javaScript', 'linux', 'centos', 'centos'];
console.log(noRepeat(arrs));
1
2
3
4
5
6
白色

关注公众号

一个走心,有温度的号,同千万同行一起交流学习

加作者微信

扫二维码 备注 【加群】

扫码易购

福利推荐