前端面试题之数组去重

// 可以在函数刚开始时,添加个鉴别参数是否为数组

if (!Array.isArray(arr)) {
console.log('type error!')
return
}

1、Es6 Set

function unique (arr) {
  return Array.from(new Set(arr))
  // Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组
}

代码最少,但缺点是无法去掉{}空对象。

2、for嵌套for,再splice

function unique(arr) {
  for(var i=0;i

3、indexOf

function unique(arr) {
  var array = [];
  for(var i=0;i

4、sort()

function unique(arr) {
  arr = arr.sort()  //对数组进行排序
  var array = [arr[0]];
  for (var i=1;i

5、includes

function unique(arr) {
  var array = [];
  for(var i=0;i

6.[…new Set(arr)]

  […new Set(arr)] // []和...都不能省去,相当于简化了第一种方法
前端面试题之数组去重_第1张图片
谢谢

你可能感兴趣的:(前端面试题之数组去重)