数组去重的一些方法以及数组排序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<style>
    /* body{
        cursor: pointer;
    } */
</style>
<body>
    
</body>
</html>
<script>

    //方法一:
    //编写一个函数 判断在数组中,是否存在某个值   fn(arr,n)

    function fnCz(arr,n){
        for(var i = 0;i < arr.length;i++){
            if(arr[i] == n){
                return true;
            }
        }
        return false;
    }

   //数组去重,定义一个新数组,将已有数组的值拿出来,新数组中没有的就存进去

   //可利用上面的函数

   var arr = [1,2,4,6,2,1];
   var brr = [];
   function ArrQc(){
       for(var i = 0;i < arr.length;i++){
        if(!fnCz(brr,arr[i])){
            brr.push(arr[i]);
        }
     }
     return brr;
   }
   console.log(ArrQc())

   //方法二:indexOf()
   //indexOf(n)  判断n在数组中是否存在,如果存在就返回这个数在数组中的下标,不存在就返回-1
    function indexQc(){
        for(var i = 0 ; i < arr.length;i++){
            if(brr.indexOf(arr[i])== -1){
                brr.push(arr[i])
            }
        }
        return brr
    }
console.log(indexQc())

  //方法三:
  //数组排序:
  //冒泡排序:相邻两个数比较 ,大数下沉,小数上浮;
  //   [2,3,5,3,2,7,4,8]     
    


   var wyl = [2,3,5,3,2,7,4,8]
   
   function MpPx(){
       var b = 0;  //用于交换的一个数
        for(var i = 0 ;i < wyl.length -1; i++){//轮数   每一轮都得到一个当前的最大数,第一轮将最大的数交换到最后,第二轮再类推,先1,2比较,交换完毕后,2,3比较,依次类推;而每一轮的次数等于原本的数减1  轮数 和次数 有关;  总轮数是数的长度减1,而次数是数的长度减当前的轮数  也就是长度减1减i
            for(var j = 0;j < wyl.length - 1 - i;j++){
                if(wyl[j] > wyl[j+1]){
                    // b = wyl[j];
                    // wyl[j] = wyl[j+1];
                    // wyl[j+1] = b;

                    //使用解构赋值
                    [wyl[j],wyl[j+1]] = [wyl[j+1],wyl[j]]
                }
            }

        }
        return wyl
   }
   console.log(MpPx());
//sort()排序  无参数时默认按照 字符 进行升序排序,对数值进行排序时需要有参数;参数为匿名函数    
// 数组名.sort( function(a,b){  return a-b; 为升序                                                                                                        return b-a;为降序})  

   console.log(wyl.sort(function(a,b){
      return b-a;
   }))

   //选择排序:选择其中一个数 和其他的数作比较  轮数,次数  每一轮得到一个最小值

   var  xl = [2,3,2,4,6,4,3]
   function XzPx(){
       var a = 0;
       for(var i = 0 ;i < xl.length-1; i++){
           for(var j = i+1;j <=xl.length-1;j++){
                if(xl[i] > xl[j]){
                        a = xl[j];
                        xl[j] = xl[i];
                        xl[i] = a;
                }
           } 
            
       }
       return xl;
   }
console.log(XzPx())
  //将数组按顺序排列,遍历数组,相邻的两个值作比较;定义一个新数组,如果前一个数不等于后一个数,将前一个数存到新数组里


  var  b = [1,3,3,4,5,8,8,9];
  var c = [];
  function noRepeat(){
        for(var i = 0; i < b.length; i++){
            if(b[i] !== b[i+1]){
                c.push(b[i]);
            }
        }
        return c;
  }
  console.log(noRepeat())
</script>

 

posted @ 2019-09-16 22:06  一直敲敲敲  阅读(689)  评论(0编辑  收藏  举报