5、数组去重

  • Set
function fn(arr){
  return Array.from(new Set(arr))
}
  • 一项一项去拿,然后和其后面形成的数组进行对比
function fn(arr){
  for(let i = 0;i < arr.length;i++){
    let val = arr[i],
            compareArr = arr.slice(i);        //取出i之后的所有项组成的数组
    if(compareArr.indexOf(val)>-1){        //如果后面存在这个值
      arr.split(i,1)
      arr.length--;
      i--;
    }
  }
  return arr;
}


function fn(arr){
  for(let i = 0;i < arr.length;i++){
    let val = arr[i],
            compareArr = arr.slice(i);        //取出i之后的所有项组成的数组
    if(compareArr.indexOf(val)>-1){        //如果后面存在这个值
      arr[i] = null;
    }
  }
  arr = arr.filter((item)=>{return item != null})
}
  • 先排序再去重
function fn(arr){
  arr = arr.sort((a,b)=>{return a-b});        //升序
  for(let i = 0;i < arr.length-1;i++){        //倒数第一项不用去跟后面一项进行对比
    if(arr[i] === arr[i+1]){
      arr.split(i,1)
      arr.length--;
      i--;
    }
  }
  return arr;
}

results matching ""

    No results matching ""