zoukankan      html  css  js  c++  java
  • 数组去重的一些方法以及数组排序

    <!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>
  • 相关阅读:
    layui table中省略号展开,弹框拖动会错位问题
    layui table分页 page为false时,limit问题
    layui 表格在排序之后没有重新渲染问题
    基于jQuery的控件:弹框
    layui layer弹框中表格的显示
    layui select使用问题
    页面强制横屏
    linux下常用命令
    文字超出省略号显示
    Web Notification简单实现桌面消息通知(右下角提示)
  • 原文地址:https://www.cnblogs.com/cqdd/p/11530606.html
Copyright © 2011-2022 走看看