13 (H5*) JS第三天 数组、函数

目录

1:数组的定义和创建方式

2:数组的总结 

3:for循环遍历数组

4:数组的案例

5:冒泡排序 

6:函数的定义

7:函数的参数

8:函数的返回值

 

 

 

复习

  <script>


    /*
     *
     * break:在循环中遇到这个关键字,直接跳出当前所在的循环
     * continue:在循环中遇到这个关键字,直接进行下一次循环
     * 数组:存储一组有序的数据,数据类型可以不一样
     * 数组的作用:一次性存储多个数据
     * 数组元素:数组中存储的每个数据,叫数组元素,存储了5个数据,有5个数组元素
     * 数组的长度:数组的元素的个数,叫数组的长度:数组名.length--->就是长度,数组的长度是可以改变的
     * 索引(下标):存储数组元素的编号,从0开始,到数组的长度-1结束
     * 索引是用来存储和读取数组元素的
     * 遍历数组:通过循环的方式找到数组中的每个数据
     * 冒泡排序:
     * 求数组的和,最大值,最小值,平均值
     *
     * 数组定义的方式:
     * 1. 通过构造函数定义数组
     * var 数组名=new Array();空数组 Array()就是构造函数
     * var 数组名=new Array(长度);是设置数组的初始的长度,长度是可以改变的
     * var 数组名=new Array(值,值,值...);定义数组并设置数组中的元素值
     * 2. 字面量的方式定义数组
     * var 数组名=[];空数组
     * var 数组名=[10];这个数组有一个元素,值是10,长度是1
     * 数组变量
     * for(var i=0;i<数组名.length;i++){
     *
     * }
     *
     *
     * 函数:把一些重复的代码封装起来,在需要的时候直接调用这个函数就可以了
     * 函数作用:代码的重用
     * 函数定义:
     * function 函数名(){
     *     函数体
     * }
     * 函数调用:
     * 函数名();
     *
     * 参数:形参和实参
     * 形参:函数定义的时候函数名字后面的小括号里的变量就是参数,是不需要写var
     * 实参:函数调用的时候小括号里传入的变量或者是值,都是实参
     * 返回值:函数中如果有return,那么这个函数就有返回值
     * 如果函数中没有return,那么这个函数没有返回值
     * 如果函数中有return,但是后面什么内容都没有,这个函数没有明确返回值
     * 如果一个函数没有明确的返回值,函数调用了,并且接收了,那么此时接收的结果undefined
     * 如果直接输出函数名字,那么是这个函数的代码
     * 无参数无返回值的函数
     * function f1(){
     *
     * }
     * 有参数无返回值的函数,2个参数
     * function f2(x,y){
     *
     * }
     * 无参数有返回值的函数
     * function f3(){
     *   return 100;
     * }
     * 有参数有返回值的函数
     * function f4(x){
     *  return "您好";
     * }
     *
     *
     *
     *
     * */


    var arr = [1, 5, 10, 3, 100, 20];
    //循环控制比较的轮数
    for (var i = 0; i < arr.length - 1; i++) {
      //此时只是比较了一次---如果想要比较多次--for循环
      for (var j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] < arr[j + 1]) {
          var temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
      }
    }
    console.log(arr);


  </script>
  <script>
    //    //隐式全局变量
    //    for( i=0;i<10;i++){
    //      console.log("今天天气真好");
    //    }
  </script>

 

 

1:数组的定义,创建方式

  <script>

    //数组:一组有序的数据
    //数组的作用:可以一次性存储多个数据
    //数组的定义:
    /*
    *
    * 1. 通过构造函数创建数组
    * 语法:
    * var 数组名=new Array();
    * var array=new Array();//定义了一个数组
    * 数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来,如果没有数据,就看不到数据
    *
    * var 数组名=new Array(长度);
    * 如果数组中没有数据,但是有长度---,数组中的每个值就是undefined
    * 构造函数的方式创建数组的时候,如果在Array(一个数字)--->数组的长度(数组元素的个数)
    * 如果在Array(多个值);这个数组中就有数据了,数组的长度就是这些数据的个数
    *
    *
    * 2. 通过字面量的方式创建数组
    *
    * var 数组名=[];//空数组
    * var array=[];
    *
    *
    * 无论是构造函数的方式还是字面量的方式,定义的数组,如果有长度,那么默认是undefined
    *
    * 3:  数组:一组有序的数据
    * 数组元素:数组中存储的每个数据,都可以叫数组的元素,比如:存储了3个数据,数组中3个元素
    * 数组长度:就是数组的元素的个数,比如有3个元素,就说,这个数组的长度是3
    * 数组索引(下标):用来存储或者访问数组中的数据的,索引从0开始,到长度减1结束
    * 数组的索引和数组的长度的关系:长度减1就是最大的索引值
    *
    * 4:  如何设置数组中某个位置的值
    * 数组名[下标]=值;
    * arr[3]=100;
    *
    * 5:如何获取数组中某个位置的值
    * var result=数组名[下标];
    * console.log(result);
    * */

    //通过构造函数的方式定义一个数组
//    var array=new Array(5);//没有数据,空数组
//    console.log(array);
    //alert(array);

    //就是一个数组---->字面量的方式
//    var arr=[];
//    console.log(arr);


//    var arr1=new Array();//构造函数的方式---空数组
//    var arr2=new Array(5);//构造函数的方式定义了一个数组,数组中有5个元素,数组长度是5,每个数据是undefined
//
//    var arr3=new Array(10,20,1000,40,50,60);
//    console.log(arr3);


//    var arr=new Array(10,20,30,40,100);
//    //console.log(arr[4]);//获取
//    //设置
//    arr[3]=1000;
//    console.log(arr);


    //字面量的方式更简单

//    var arr=[10,20,30,40,50,60,70,80,10,20,3043,5];//空数组
//    console.log(arr.length);

  </script>

 

2:数组的总结

 <script>
    /*
    *
    * 数组:存储一组有序的数据
    * 数组的作用:一次性存储多个数据
    * 数组的定义方式:
    * 1.构造函数定义数组: var 数组名=new Array();
    * 2.字面量方式定义数组: var 数组名=[];
    *
    * var 数组名=new Array();空数组
    * var 数组名=new Array(值);数组定义了,有长度
    * var 数组名=new Array(值1,值2,值3....);定义数组并且有多个数据
    * var 数组名=[];空数组
    * var 数组名=[值1,值2,值3];有三个数据
    * 数组元素:就是数组中存储的数据
    * 数组长度:就是数组中元素的个数
    * 数组索引(下标):从0开始,到数组的长度减1结束
    * 通过下标设置数组的元素值: 数组名[索引]=值
    * 通过下标访问数组的元素值: 数组名[索引]
    *
    *
    *
    *
    * */

    var arr1=new Array();//空数组
    var arr2=new Array(5);//长度为5的数组,每个数据的值是undefined
    var arr3=new Array(1,2,3,4,5);//长度为5分数组,
    var arr4=[];//空数组
    var arr5=[1,2,3];//长度为3的数组
    var arr6=["red","blue","green",1,true];//数组中元素的值的类型可以不一样

    var arr7=[];
    //设置数组的元素的值
    arr7[0]=10;
    arr7[1]=20;

  </script>

 

 

3:for循环遍历数组

<script>
//    var arr=[10,20,30,40,50];
//    //显示数组中的每个数据
//    console.log(arr[0]);
//    console.log(arr[1]);
//    console.log(arr[2]);
//    console.log(arr[3]);
//    console.log(arr[4]);
    //console.log(arr[5]);//没有数据

    var arr=[10,20,30,40,50,60,70,80,90,100];
//小于的是数组的长度--个数
    for(var i=0;i<arr.length;i++){
      console.log(arr[i]);
    }
  </script>

 

 

4:数组的案例

 <script>


    //案例1:求数组中所有元素的和

    var arr1 = [10, 20, 30, 40, 50];
    var sum = 0;
    for (var i = 0; i < arr1.length; i++) {
      sum += arr1[i];
    }
    console.log(sum);

    //案例2:求数组中所有元素的平均值

    var arr2 = [1, 2, 3, 4, 5];
    var sum2 = 0;
    for (var i = 0; i < arr2.length; i++) {
      sum2 += arr2[i];
    }
    console.log(sum2 / arr2.length);

    //案例3:求数组中所有元素中的最大值

    var arr3 = [1, 3, 2, 5, 10, 100, 50];
    //假设max变量中存储的是最大值
    var max = arr3[0];
    for (var i = 0; i < arr3.length; i++) {
      //判断这个变量的值和数组中每个元素的值是不是最大值
      if (max < arr3[i]) {
        max = arr3[i];
      }
    }
    console.log("最大值:" + max);


    //一个不好的地方----会出现bug的
    //    var arr3=[-1,-2,-3];
    //    //假设max变量中存储的是最大值
    //    var max=0;
    //    for(var i=0;i<arr3.length;i++){
    //      //判断这个变量的值和数组中每个元素的值是不是最大值
    //      if(max<arr3[i]){
    //        max=arr3[i];
    //      }
    //    }
    //    console.log("最大值:"+max);


    //    var arr3=[1,3,2,5,10,100,50];
    //    //假设max变量中存储的是最大值
    //    var max=Number.MIN_VALUE;//假设变量是最大的,但是实际上存储的是最小的值
    //    for(var i=0;i<arr3.length;i++){
    //      //判断这个变量的值和数组中每个元素的值是不是最大值
    //      if(max<arr3[i]){
    //        max=arr3[i];
    //      }
    //    }
    //    console.log("最大值:"+max);


    //案例4:求数组中所有元素的最小值
    var arr4 = [100, 10, 20, 30, 40, 50];
    var min = arr4[0];//假设min里存储的就是最小值
    for (var i = 0; i < arr4.length; i++) {
      if (min > arr4[i]) {
        min = arr4[i];
      }
    }
    console.log("最小值:" + min);


    //案例5:倒序遍历数组

    var arr5 = [10, 20, 30, 40, 50, 100];
    //正序
//    for (var i = 0; i < arr5.length; i++) {
//      console.log(arr5[i]);
//    }
    //倒序
    for(var i=arr5.length-1;i>=0;i--){
      console.log(arr5[i]);
    }


  </script>

 

 5:冒泡排序

<script>


    //案例6:把数组中每个元素用|拼接到一起产生一个字符串并输出

    //    var names=["卡卡西","佐助","鸣人","大蛇丸","雏田","小苏","凤姐","黑崎一护"];
    //    var str="";//空的字符串
    //    for(var i=0;i<names.length-1;i++){
    //      str+=names[i]+"|";
    //    }
    //
    //    console.log(str+names[names.length-1]);

    //    var names=["卡卡西","佐助","鸣人","大蛇丸","雏田","小苏","凤姐","黑崎一护"];
    //    var str="";//空的字符串
    //    for(var i=1;i<names.length;i++){
    //      str+="|"+names[i];
    //    }
    //
    //    console.log(names[0]+str);


    //案例7:去掉数组中重复的0,把其他的数据放在一个新的数组中

    //    var arr = [10, 0, 20, 0, 30, 0, 50];
    //    var newArr=[];//新数组,用来存放第一个数组中所有非0的数字
    //    for(var i=0;i<arr.length;i++){
    //      if(arr[i]!=0){
    //        newArr[newArr.length]=arr[i];
    //      }
    //    }
    //    //把新数组的长度作为下标使用,数组的长度是可以改变的
    //    console.log(newArr);


    //案例8:反转数组---把数组中的数据的位置调换
    //    var array = [10, 20, 30, 40, 50];
    //    //循环的目的是控制交换的次数
    //    for (var i = 0; i < array.length / 2; i++) {
    //      //先把第一个元素的值放在第三方变量中
    //      var temp = array[i];
    //      array[i] = array[array.length - 1 - i];
    //      array[array.length - 1 - i] = temp;
    //    }
    //    console.log(array);


    //    for(var i=array.length-1;i>=0;i--){
    //      console.log(array[i]);
    //    }
    //console.log(array);//50 40 30 20 10


    //案例9:提示用户输入班级人数,求总成绩,平均值,最高分,最低分---扩展

    //提示用户输入人数,并转成数字类型
    var perCount = parseInt(prompt("请输入班级人数"));
    //定义数组存储班级的每个人的成绩
    var perScores = [];
    //循环的方式录入每个人的成绩
    for (var i = 0; i < perCount; i++) {
      //把每个人的成绩存储到数组中
      perScores[perScores.length] = parseInt(prompt("请输入第" + (i + 1) + "个人的成绩:"));
    }
    console.log(perScores);
    //求总成绩
    var sum = 0;
    var avg = 0;//平均值
    var max=perScores[0];//最大值
    var min=perScores[0];//最小值
    for (var i = 0; i < perScores.length; i++) {
      sum += perScores[i];//求和
      //求最大值
      if(max<perScores[i]){
        max=perScores[i];
      }
      //求最小值
      if(min>perScores[i]){
        min=perScores[i];
      }
    }
    //平均值
    avg = sum / perScores.length;
    console.log("和为:"+sum);
    console.log("平均值:"+avg);
    console.log("最大值:"+max);
    console.log("最小值:"+min);

    //案例10: 冒泡排序

  </script>

 

 

 

  <script>

    //冒泡排序:把所有的数据按照一定的顺序进行排列(从小到大,从大到下)

    var arr = [10, 0, 100, 20, 60, 30];
    //循环控制比较的轮数
    for (var i = 0; i < arr.length - 1; i++) {
      //控制每一轮的比较的次数
      for (var j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] < arr[j + 1]) {
          var temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
      }
    }
    console.log(arr);
  </script>

 

 

6:函数的定义

//函数:把一坨重复的代码封装,在需要的时候直接调用即可
    //函数的作用:代码的重用
    /*
    *
    * 函数的定义
    * 语法:
    *
    * function 函数名字(){
    *   函数体-----一坨重复的代码
    * }
    *
    * 函数的调用:
    *
    * 函数名();
    *
    *
    *
    * */
 

7:函数的参数

 <script>
    /*
     * 函数参数:
     * 在函数定义的时候,函数名字后面的小括号里的变量就是参数,目的是函数在调用的时候,用户传进来的值操作
     * 此时函数定义的时候后面的小括号里的变量叫参数;写了两个变量,就有两个参数,
     * 在函数调用的时候,按照提示的方式,给变量赋值--->就叫传值,把这个值就传到了变量(参数)中
     *
     * 形参:函数在定义的时候小括号里的变量叫形参
     * 实参:函数在调用的时候小括号里传入的值叫实参,实参可以是变量也可以是值
     *
     *
     * */


    //函数定义
    function consoleSum(x, y) {
      var sum = x + y;//计算和----功能
      console.log(sum);//输出和---第二个功能
    }
//    //函数调用
//    var num1=parseInt(prompt("输入第一个数字"));
//    var num2=parseInt(prompt("输入第二个数字"));
//    consoleSum(num1, num2);


    //    function f1(x) {
    //      console.log(x);
    //    }
    //    function f2(x,y) {
    //
    //    }
    //    function f3(x,y,z) {
    //
    //    }
    //    function f4(x,y,z,k) {
    //
    //    }
  </script>

 

 

8:函数的返回值

 

  <script>
    //set:设置
    //get:获取
    //函数的返回值:在函数内部有return关键字,并且在关键字后面有内容,这个内容被返回了
    //当函数调用之后,需要这个返回值,那么就定义变量接收,即可

    /*
    *
    * 如果一个函数中有return ,那么这个函数就有返回值
    * 如果一个函数中没有return,那么这个函数就没有返回值
    * 如果一个函数中没有明确的返回值,那么调用的时候接收了,结果就是undefined
    * (没有明确返回值:函数中没有return,函数中有return,但是return后面没有任何内容)
    * 函数没有返回值,但是在调用的时候接收了,那么结果就是undefined
    * 变量声明了,没有赋值,结果也是undefined
    * 如果一个函数有参数,有参数的函数
    * 如果一个函数没有参数,没有参数的函数
    * 形参的个数和实参的个数可以不一致
    * return 下面的代码是不会执行的
    *
    *
    *
    * */


    function f1(x,y) {
      var sum= x+y;
      return sum;
      console.log("助教才是最帅的");
      return 100;
    }
    var result=f1(10,20);
    console.log(result);




//    function getSum(x, y) {
//      var sum = x + y;
//      return sum;//把和返回
//
//    }
//    //函数调用
//    var result=getSum(10, 20);
//    console.log(result+10);



    //函数定义: 有参数有返回值的函数
//    function getSum(x, y) {
//      return  x + y;//把和返回
//    }
//    //函数调用
//    var result=getSum(10, 20);
//    console.log(result+10);



    //有参数,有返回值的函数
//    function f1(x,y) {
//      return x+y;
//    }
//    //有参数,无返回值的函数
//    function f2(x) {
//      console.log(x);
//    }
//    //无参数,有返回值的函数
//    function f3() {
//      return 100;
//    }
//    //无参数无返回值的函数
//    function f4() {
//      console.log("萨瓦迪卡");
//    }
//
//
//    var sum=f1(10);
//    console.log(sum);//

  </script>

 

 

 

 

posted on 2019-09-30 12:15  风zk  阅读(277)  评论(0编辑  收藏  举报

导航