js-数组

一、实现目标

1、了解数组的概念

      数组:就是一组数据的集合,并且是存储在单个变量下的优雅方式!

2、如何来创建一个数组

    

script>
    //数组就是存储一组数据,并且放置在一个变量下的优雅方式!
    // 1、通过new关键字来创建
    var arr=new Array();
    // 2、直接通过''[]'来创建
    var arr1=[];
    // 这两种方式都表示创建了一个空数组
    // 3、数组中的对象可以是任意类型
    var arr2=[1,2,'飞翔',true]
    console.log(arr2);
  </script>

获取元素中的某个元素的值

 var arr3=['罪与罚','悲惨世界','平凡世界','小王子'];
    // 5、获取第一个元素的值
    console.log(arr3[0]);
    //6、获取第二个元素的值
    console.log(arr3[1]);
    //7、获取第三个元素的值
    console.log(arr3[2]);
    //8、如果获取没有元素的值,会发生什么呢?
    console.log(arr3[4]);

注:如果获取的是,数组汇总索引不存在的值,会输出undefined;

案例:遍历数组星期,并输出星期日:

<body>
  <!-- 获取星期的案例,并且按照索引来进行输出 -->
  <script>
    var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
    console.log(arr[6]);
  </script>
</body>

3、如何遍历数组

<script>
    // var arr=['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
    // console.log(arr[6]);
    // 1、遍历数组中的元素
    var arr1=['red','green','blue'];
    for(var i=0;i<3;i++){
      console.log(arr1[i]);
    }
    // 注意:遍历的时候,必须是数组索引从0开始,然后利用for循环遍历整个进行输出
    // 2、案例:遍历数组中的每个数来进行输出
    var arr2=['关羽','张飞','马超','赵云','黄充','刘备','姜维'];
    for(var i=0;i<7;i++){
      console.log(arr2[i]);
    }
  </script>

通过for循环来访问数组中的元素

 

组的长度:arr.length:动态检测数组元素的个数

 

 //3、通过.lenght可以动态检测数组的长度
    for(var i=0;i<arr2.length;i++){
      console.log(arr2[i]);
    }
    //此时亦可以进行遍历数组中的元素


 

4、如何在数组中新增一个元素

<body>
  <script>
    // 1、数组中插入元素,通过修改数组的长度。显示undefined;
     var arr=['red','green','pink'];
     arr.length=5;
     console.log(arr);
     console.log(arr[3]);
     console.log(arr[4]);
    //  2、通过给固定位置设置索引来进行添加
    // 如果是空值的情况,则会进行插入!如果是有值的情况下,则直接进行赋值
    arr[3]='pink';
    arr[4]='yellow';
    arr[0]='purple';
    console.log(arr);
    // 3、注意在使用的时候,不能直接将数组赋值给字符串,否则之前的值都会显示消失!
    arr='str';
    
  </script>
  
</body>

 

 

 

求出数组[2,6,1.7,4]的数组的元素的和以及平均值:

 // 求出数组[2,6,1.7,4]的数组的元素的和以及平均值:
    var sum=0;
    var arr=[2,6,1,7,4];
    for(var i=0;i<arr.length;i++){
      sum+=arr[i];
    }
    var ave=sum/(arr.length);
    console.log('该数组元素的和以及平均值分别为:',sum,ave);

 

 

 

 遍历求出数组中的最大值和最小值

<body>
  <script>
    // 1、书写一个数组,求出该数组中的最大值
    // 思路:首次将第一个元素的值赋值为max,然后让第一个值与接下来的每个值来进行比较
    // 然后将最大值赋值给max,否则直接进行输出即可
    var arr=[12,34,90,78,56,34];
    var max=arr[0];
    for(var i=0;i<arr.length;i++){
      if(arr[i]>max){
        max=arr[i]
      }
    }
    console.log(max);
    // 如果是最小值,则将第一个值赋值为min,然后进行比较,如果数组中的元素值小于min的值
    // 则进行赋值即可;
    var arr2=[12,34,90,78,56,34];
    var min=arr[0];
    for(var arr2=0;i<arr2.length;i++){
      if(arr2[i]<min){
        min=arr2[i]
      }
    }
    console.log(min);
  </script>
  
</body>

 

 

 

要:将数组中的元素组成字符串进行拼接

 var arr3=['red', 'green', 'blue', 'pink'];
     var str='';
      //和求和一样,定义一个空字符串用来进行拼接要展示的字符串的变量
      for(var i=0;i<arr3.length;i++){
        str=str+arr3[i]+'|'
      } 
      console.log(str);

 

求∶将数组['red', 'green', 'blue', 'pink']转换为字符串,并且用|或其他符号分割输出: 'red|green|blue|pink|

 往数组中动态地添加元素:

 var arr1=[];
    for(var i=0;i<100;i++){
      arr1[i]=i+1;
    }
    console.log(arr1);
    // 此时可以实现可以往数组中进行动态地添加元素!nice

 

要求∶将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组

 var j=0;
     for(var i=0;i<newarr.length;i++){
       if(newarr[i]>=10){

        //  str1[i]=newarr[i]
        // 如=如果是这样,则就会显示数组的长度是9
        str1[j]=newarr[i];
        j++;
       }
     }
     console.log(str1);
     //此时即显示数组的长度为3,而且里面包含的元素也是3个,完美!又解决了!

 

 

 

 

二、数组案例:

 

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

<body>
  <!-- 
1、要求∶将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉后,形成一个不包含0的新数组。 
-->
  <script>
     var arr=[2,0,6,1,77,0,52,0,25,7];
     var newarr=[];
     for(var i=0;i<arr.length;i++){
       if(arr[i]!=0){
         newarr[newarr.length]=arr[i]
       }
     }
     console.log(newarr);
  </script>

</body>

 

 

 2、要求:将数组['red', 'green', 'blue', pink', 'purple']的内容反过来存放。
               输出: ['purple', 'pink', 'blue', 'green', 'red']

</script>
  <!-- 2、将数组['red', 'green', 'blue', pink', 'purple']的内容反过来存放。
      输出: ['purple', 'pink', 'blue', 'green', 'red'] -->
    <script>
      var arr1=['red', 'green', 'blue','pink', 'purple'];
      var newarr1=[];
      for(var i=arr1.length;i>0;i--){
        newarr1[newarr1.length]=arr1[i-1];
      }
      console.log(newarr1);
    </script>

 

交换两个变量:

 <script>
      var temp=0;
      var left='left';
      var right='right';
      temp=left;
      left=right;
      right=temp;
      console.log('交换后两个变量的显示是:',right,left);

    </script>

 

 

 

3、冒泡排序的实现:

冒泡排序∶是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)。

冒泡排序:实际上是首个元素进行与后面的元素一次来进行比较,如果大于则直接进行交换。因为冒泡排序一般都会将最小的元素显示在前列。所以,类似于泡泡,就称之为冒泡排序!

</script>
    <!-- 4、冒泡排序的实现 -->
    <script>
      var arrsquene=[2,0,6,1,77,0,52,0,25,7]; 
      for(var i=0;i<=arrsquene.length-1;i++){
        //控制外层循环,用来控制趟数。比如说数组里有9个元素,则整个进行交换下来需要8趟
        for(var j=0;j<arrsquene.length-i-1;j++){
          //控制内层循环,用来计算交换的次数
          // 一直是让前一个元素来与后一个元素比进行比较
         if(arrsquene[j]>arrsquene[j+1]){
          var temp=0;
          temp=arrsquene[j];
          arrsquene[j]=arrsquene[j+1];
          arrsquene[j+1]=temp;
         }
        }
      }
      console.log(arrsquene);
    </script>

 

如,我们可以将数组[5,4,3,2,1]中的元素按照从小到大的顺序排序,输出∶1 2,3,4,5

 

 终于可以自己独立完成冒泡排序了。开心!

今天算是完数组的基本知识了,加油!

 

posted @ 2022-03-20 10:25  starter123  阅读(91)  评论(0)    收藏  举报