2020-10-24数组和函数

数组导读:

  1. 能够知道为什么要有数组

  2. 能够创建数组
  3. 能够获取数组中的元素
  4. 能够对数组进行遍历
  5. 能够给数组新增一个元素
  6. 能够独立完成冒泡排序案例

p97:

数组的概念:可以使用(Array),可以把一组相关的数据一起存放,并提供方便的获取方式

数组是一组数据的集合。

如何创建数组:

  • 利用new创建数组
  • 利用数组字面量创建数组
var arr = new Array();    //利用new创建了一个空的数组

var arr = []  ;//创建了一个空的数组
var arr = [1,'str','i',9];   //数组内的元素用逗号相隔   数组内可以存放任意数据类型的数据

如何获取数组元素:

var arr = [1,'xiaohong',9,true];   //可以利用索引号来获取数组中的元素,索引号是从0开始第 
console.log(arr[1]);   //获取数组的方式就是数组名[索引号]

如何遍历数组:

遍历:

 var arr = ['monday', 'tuesday', 'wedesday', 'thursday'];
        for (var i = 0; i < 4; i++) {
            console.log(arr[i]);
        }
//把数组中的元素从头到尾访问一次

注意:索引号从0开始,所以i必须从0开始。、

数组的长度:

使用数组名.length,数组的长度就是元素的个数,不要和索引号混淆。

例子:输出数组的 最大值

var arr = [2, 6, 1, 77, 52, 25, 7];
        var max = arr[0];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        console.log(max);
/*声明一个保存最大元素的变量max;默认最大值为第一个元素;遍历这个数组,把里面每个元素与max比较;如果数组元素大于max,就把这个数组元素存到max里面,否则继续下一轮比较;最后是输出max*/
//利用中间变量

例子:将数组'red', 'green', 'blue', 'pink'转换为字符串,并且输出red|green|blue|pink|;

var arr = ['red', 'green', 'blue', 'pink'];
        var str = "";
        for (var i = 0; i < arr.length; i++) {
            str += arr[i];
            str += '|';
        }
        console.log(str);

数组中新增元素:

1.可以通过length长度来新增数组元素:(实现数组扩容的目的)(length属性是可以读写的),默认值就是未定义的

2. 可以通过修改数组索引新增数组元素

var arr = ['red', 'green', 'blue', 'pink'];
        arr[4] = 'pink';
        console.log(arr);

没有的 时候就添加,有的就是替换。

例子:筛选元素

var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var arr2 = [];
        var j = 0;
        for (var i = 0; i < arr1.length; i++) {
            if (arr1[i] > 10) {
                arr2[j] = arr1[i];
                j++;   /*每次新数组中的 元素加1,新数组中的j就要增加一次,这是刚开始自己做的时候没想到的*/

            }
        }
        console.log(arr2);  //将数组中大于10的数字筛选出来并赋给新数组。

注意新数组的索引号。

 var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var arr2 = [];
        for (var i = 0; i < arr1.length; i++) {
            if (arr1[i] > 10) {
                arr2[arr2.length] = arr1[i];
            }
        }
        console.log(arr2);//方法2:直接用new.length作为arrr2的索引

例子:var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]把该数组变成不含0的数组

var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var arr2 = [];
        var j = 0;
        for (var i = 0; i < arr1.length; i++) {
            if (arr1[i] != 0) {
                arr2[j] = arr1[i];
                j++;

            }

        }
        console.log(arr2);

例子:数组翻转

var arr = ['red', 'blue', 'green', 'black', 'pink'];
        var arr2 = [];
        var j = 0;
        for (var i = 4; i >= 0; i--) {
            arr2[j] = arr[i];
            j++;

        }
        console.log(arr2);

案例三:数组排序  重点理解!

var arr = [2, 6, 0, 33, 67, 54, 32, 1];
        var num;
        //冒泡排序,依次比较两个元素,然后调换顺序
        for (var i = 0; i < arr.length; i++) { //外层循环管趟数
            for (var j = 0; j < arr.length - i - 1; j++) { //里层循环管每一趟的交换次数
                //内部交换变量的值,前一个和后一个比较
                if (arr[j] > arr[j + 1]) {
                    num = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = num;

                }

            }

        }
        console.log(arr);
//i和J必须都从零开始

函数导读:

目标:

  1. 能够说出来为什么需要函数
  2. 能够根据语法书写函数
  3. 能够根据需求封装函数
  4. 能够说出形参和实参的传递过程
  5. 能够使用函数的返回值
  6. 能够使用argurments获取函数的参数

函数的概念:

在js里面会使用很多相同结构的代码或者功能相似的代码,这些代码可能就需要大量重复使用

这时候就可以 利用函数。

函数:就是封装了一段可被重复调用执行的代码块,通过此代码可以实现大量代码的重复使用。

 函数的使用:

函数在使用时分为声明函数调用函数

function 函数名{
   函数体;
}
//函数名一般是东西   function时声明函数的变量,全部小写
//调用函数
function();//函数名后面必须加上小括号

函数的封装:把一个或者多个功能通过函数的方式进行封装,对外只提供一个简单的函数接口。

例子:利用函数实现  从1 到100的加法

function getSum() {
            var sum = 0;
            for (var i = 1; i <= 100; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSum();  //不调用函数  函数不起作用。

函数的参数:

函数的参数分为形参和实参。

function 函数名(形参1,形参2...){

        }//在声明函数小括号里面是形参
        函数名(实参1,实参2);//在调用函数的括号里面的实参

形参是用来接受实参的,形参类似于一个变量。

函数的参数可以有也可以没有,个数不限。

例子:利用函数求任意两个数的和

 function getSumup(num1, num2) {
            var sum = num1 + num2;
            console.log(sum);

        }
        getSumup(2, 4);

函数形参和实参个数不匹配的问题:


        function getSumup(num1, num2) {
            var sum = num1 + num2;
            console.log(sum);

        }
        getSumup(2, 4); //1.如果形参的个数和实参的个数一致,则正常输出结果
        getSumup(2, 4, 6) //如果形参的个数多于实参的个数,则最后一个舍去
        getSumup(2) //如果形参的个数少于实参的 个数,  num2没有值,则没有被定义,输出结果NAN

函数的返回值  return:把函数的结果返回给调用者return语句

function cook(aru) {
            return aru;
        }
        console.log(cook('大肘子'));
 function getSum(num1, num2) {
            return num1 + num2;//注意返回值  要返回给函数调用者  而不是直接输出

        }
        console.log(getSum(1, 2));

例子:利用函数求两个数中的最大值

 function getMax(num1, num2) {
            if (num1 > num2) {
                return num1;
            } else {
                return num2;
            }


        }
        console.log(getMax(2, 4));

例子:利用函数求数组中的最大值,可以求任意一个数组

  //利用函数求任意一个数组中的最大值

        function getMax(arr) {
            var max = arr[0];
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                }
            }
            return max;
        }
        console.log(getMax([5, 2, 99, 101, 7, 77]));//在我们的实际开发中经常用一个变量来接受函数的返回结果。

return终止函数:

return语句之后的代码不被执行

return终止函数

例子:

function getSum(num1, num2) {
            return num1 + num2; //注意返回值  要返回给函数调用者  而不是直接输出
            alert('我是不会被执行的');

        }
        console.log(getSum(1, 2));
//输出结果还是3

return只能返回一个值。

我们求任意两个数的加减乘除结果:

 function getSum(num1, num2) {
            return [num1 + num2, num1 - num2, num1 / num2];

        }
        console.log(getSum(1, 2));

函数返回值的注意事项:

如果有return则返回的是return后面的值,如果没有return,则返回的是未定义。

break,continue,return的区别:

break:结束当前的循环体

continue:跳出本次循环

return:不仅可以推出循环,还能够返回return的值,还可以用来结束当前函数体内的代码。

下一节p126.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值