🌙案例练习

/*    案例1. 删除指定数组元素

          要求: 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉后形成一个包含0的新数组

          思路: 1.需要一个新的数组用于存放筛选之后的数据

                    2.遍历原来的数组 把不是0的数据添加到新数组里面(注意要采用 数组名+索引 的格式接收数据)

                  3.新数据的个数 用length不断累加 

*/

      var arr  =  [2, 0,  6,  1,  77,  0,  52,  0,  25,  7] ;

        var arr2  =  [ ] ;   // 定义一个空的数组 用来接收新数组

        for  (var  i  =  0 ;  i  <  arr . length ;  i++ )  {   // 遍历数组

            if  ( arr [ i ] !=  0 )  {  // 如果数组里的元素不等于0

              arr2 [ arr2 . length ]  =  arr [ i ] ; // 就存到arr2数组里

            }

        }

      console . log (arr2) ;  // 输出arr2新数组

  /*  案例2.翻转数组

          要求: 将数组['red', 'green', 'blue', 'pink', 'purple']内容反过来存放

          输出结果:['purple', 'pink', 'blue', 'green', 'red',]

            思路: 1.声明一个新数组arr4

                    2.把旧数组索引号第4(arr3 . length-1)个取过来  赋值给新数组索引号第0(arr4 . length)个

                    3.采用递增方式 --   

*/

        var  arr3 =  ['red',  'green',  'blue',  'pink',  'purple'] ;

        var  arr4  =  [ ] ;  // 声明新数组arr4

      for  ( var  i  =  arr3 . length  - 1 ;  i  >=  0 ;  i-- ) { /* 将arr3数组索引号4的元素 - 1赋值给arr4新数组索引号0的元素  然后逐次自减  arr3 . length - 1 表示 arr3数组索引号4的元素-1  i>=0 表示索引号从0开始  */

          arr4 [ arr4 . length ] =  arr3 [ i ] ;

        }

        console . log ( arr4 ) ; // 输出arr4新数组

/*    案例3.冒泡排序

          要求: 将数字[4, 2, 3, 5, 1]冒泡排序

          输出结果: [1, 2, 3, 4, 5]

          思路: 1.因为有5个数据元素 所以一共需要4轮 用外层for循环控制轮数 长度就是数组长度-1 (length - 1)

                    2.每一轮交换的次数 由里循环for控制 因此长度就是 i-1

                    3.最后进行2个变量的交换

*/

        var  arr5  =  [4,  2,  3,  5,  1];

        for (var  i  =  0 ;  i  <=  arr5 . length -  1 ;  i++ )  {    // 外层循环 控制轮数

          for  ( var  j  =  0 ;  j  <=  arr5 . length  -  i  -  1 ;  j++ )  {  // 里层循环控制 每一轮的次数

                if  ( arr5 [ j ]  >  arr5 [ j  +  1 ] )  {  // 条件判断 如条件为ture 就执行2个变量值交换 为false 就继续判断

                    var  temp  =  arr5 [ j ] ;   // 声明临时变量 进行交换  内部交换2个变量值是前一个

                  arr5 [ j ]  =  arr5 [ j  +  1 ];

                    arr5 [ j  + 1 ]  =  temp ;

                }

            }

        }

        console . log ( arr5 ) ; // 输出arr5

      // 注意: 如需从大到小排列 只需改变条件判断 arr5 [ j ]  <  arr5 [ j + 1 ]

/*

    利用函数封装的方法写冒泡排序 

*/

      function  sort ( arr6 )  {

            for  ( var  i  =  0 ;  i  <=  arr6 . length  -  1 ;  i++ ) {

                for  ( var  j  =  0 ;  j  <=  arr6 . length  -  i  -  1 ;  j++)  {

                    if  ( arr6 [ j ]  >  arr6 [ j  +  1 ] )  {

                        var temp = arr6[j];

                        arr6 [ j ]  =  arr6[ j  +  1 ];

                        arr6 [ j  + 1 ]  =  temp ;

                    }

                }

            }

            return  arr6 ;

        }

        console . log ( sort ( [ 1,  44,  3,  22,  5,  7 ] ) );

/*  函数的调用使用

          1.用户输入年份 输出当前年份2月份的天数

*/

        function  backDay ( )  {

            var  year1  =  prompt ( ' 请输入年份 ' ) ;

          if  ( aYear ( year1 ) )  {  // 调用判断平闰年的函数

              alert ( ' 当前年份是闰年 2月份有29天 ' ) ;

            }  else  {

                alert ( ' 当前年份是平年 2月份有28天 ' ) ;

            }

        }

        backDay ( ) ;

/*  2.利用函数判断 闰年或平年 闰年为true 平年为false

*/

        function  aYear ( year )  {     //能被4整除且不能被100整除或被400整除的为闰年 否则为平年

            if  ( year  %  4  ==  0  &&  year  %  100  !=  0  ||  year  %  400  ==  0)  {

                return  true ;

            }  else  {

                return  false ;

            }

        }

/*  利用sort () 方法 实现冒泡排序

*/

      var  arr1  =  [ 1,  4,  2,  55,  33,  22,  11 ] ;

        arr1 . sort ( function  ( a ,  b ) {

          //  这个升序排列  return a - b ;

            return  b  -  a ;  //这个是降序排列

        } ) ;

        console . log ( arr1 ) ;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容