【JavaScript】数组和函数

一、数组(Array)

数组是指一组数据的集合,其中的每个数据称作元素,在数组中可以存放任意类型元素。数组是一种将一组数据存储在单个变量名下的优雅方式

1.创建数组

1.1利用new创建数组
var arr = new Array();
var arr1 = new Arry(2);//表示数组的长度为2 里面有两个空的数组元素
var arr2 = new Array(1,2,3); //等价于[1,2,3]

A要大写

1.2利用数组字面量创建数组
var arr = [];
var arr1 = [1,2,'pink']

数组里面的数据一定要用逗号隔开

数组里面的元素称为数组元素

2.数组使用 获取(访问)数组元素

2.1数组的索引

索引及下标:用来访问数组元素的序号(数组小标从0开始)

格式:数组名[索引号]

var arr1 = ['小南','杰克','佩奇','小猪'];
console.log(arr1[1]);//得到杰克

arr1[4]没有结果则输出undefined

2.2遍历数组 (把数组中的每个元素从头到尾访问一遍)
var arr = ['杰克','南佩','瓦拉','南希'];
console.log(arr.length);//获取数组长度
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);    
}
2.3数组长度
console.log(arr.length);
2.4计算数组元素的平均值
var arr = [2,4,7,8,3,50];
var sum;
var average;
for (var i = 0; i < arr.length; i++){
    sum += arr[i];
}
    average = sum / arr.length;
    console.log(sum, average);
2.5求数组中最大/小值
 var arr = [15, 25, 63, 88, 98, 56, 25];
    var max = arr[0];
    for (var i = 1; i < arr.length; i++) {
        if (max < arr[i]) {
            max = arr[i];
        }
    }
    console.log('最大的数是:' + max);
var arr = [15, 25, 63, 88, 98, 56, 25];
    var min = arr[0];
    for (var i = 1; i < arr.length; i++) {
        if (min > arr[i]) {
            min = arr[i];
        }
    }
    console.log('最小的数是:' + min);
2.6数组转化为分割字符串
var arr = ['fedff', 'dss', 'sdcaa', 'dcaacw', 'sdcadc'];
    var ge = '!';
    var str = 0;
    for (var i = 0; i < arr.length; i++) {
        str += arr[i] + ge;
    }
    console.log(str);

3.数组中新增元素

3.1通过修改length长度来实现
var arr = [52,56,23,56,52];
console.log(arr.length);//此时长度是5
arr.length = 7;//把长度改为7
3.2通过修改索引号 (追加数组元素)
var arr = [52,56,23,56,52];
arr[5] = 'pink';
console.log(arr);
arr[0] = 'red';//如果原来有则是追加 即更新

arr = '有点意思’不要直接给数组名赋值,否则里面以前的数组元素都没有了

案例1:数组存放1~100个值
var arr = [];
    for (var i = 0; i < 100; i++) {
        arr[i] = i + 1;
    }
    console.log(arr);
案例2:筛选数组

方法一:

var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
    var arr1 = [];
    var j = 0;
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] > 10) {
            arr1[j] = arr[i];
            j++;
        }
    }
    console.log(arr1);

方法一:

var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
    var arr1 = [];
    //一开始arr1.length是0
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] > 10) {
            arr1[arr.length] = arr[i];//第一轮是0,第二轮是1、、、、、、
            j++;
        }
    }
    console.log(arr1);
案例3:翻转数组
var arr = ['fedff', 'dss', 'sdcaa', 'dcaacw', 'sdcadc'];
    var arr1 = [];
    for (var i = arr.length - 1; i >= 0; i--) {
        arr1[arr1.length] = arr[i]
    }
    console.log(arr1);

for (var i = arr.length - 1; i >= 0; i–) 取最后一个 利用数组长度减一

arr1[arr1.length] = arr[i]; 利用新数组长度开始为0,调整索引号

4.冒泡排序

是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或重大到小)
在这里插入图片描述
在这里插入图片描述

二、函数

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

1.函数使用

1.1声明函数

function 函数名() {
//函数体
}

①function 声明函数的关键字 全部小写

②函数做某件事,函数名一般是动词

③函数不调用自己不执行

1.2调用函数

函数名(); 记得加小括号

function sayHi() {
    console.log('Hello')
}
sayHi();//调用
1.3函数的封装

函数的封装是把一个或者多个功能通过函数的方法封装起来。对外只提供一个简单的函数接口。

2.函数的参数

2.1形参和实参

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

}

函数名(实参1,实参2,实参3…);

①函数的参数可以有,可以没有,可以有无限个。

②在声明函数的小括号里面是形参。在函数调用的小括号里面是实参

③形参是来接受实参的。类似于一个变量。形参不需要声明。

2.2函数形参和实参个数不匹配

1.实参多于形参 由形参决定

2.实参少于形参 则没有接受值的形参结果是undefined,

3.函数的返回值

3.1函数将值返回给调用者,此时通过使用return语句就可以实现。
//  function 函数名() {
//  return 需要返回的结果;
//  }
//  函数名();
function getSum(num1,num2) {
    return num1 + num2;//返回给调用者
}
console.log(getSum(1,2));//外部输出

案例1:求两个数最大值
//法一:
function GetMax(num1,num2) {
    if (num1 > num2) {
        return num1;
    } else {
        return num2;
    }
}
console.log(GetMax(5,3));
//法二 三元可作简单判断
function GetMax(num1,num2) {
   return num1 > num2 ? num1 : num2;
}
console.log(GetMax(14,75));

案例2:求数组最大值
function GetMax(arr) {
    var max = arr[0];
    for (var i = a[1]; i < arr.length; i++) {
        if (max < a[i]) {
            max = a[i];
        }
    }
    return max;
}
//console.log(GetMax([12,26,9,65,5]));
//实际开发中,我们通常用一个变量来接收函数的返回值
var re = GetMax([12,26,9,65,5]);
console.log(re);

3.2return注意事项

①return终止函数,return后面的语句不再执行

②return 只能返回一个值 (return num,num2;返回的结果是最后一个值)

返回多个值可以用数组

function GetResult(num1,num2) {
    return [num1 + num2, num1 - num2, num1 * num2];
}
console.log(GetResult(12,3));

③函数无return 则返回undefined

④不仅可以退出循环,还能够返回return语句中的值,同时可以结束当前函数体的代码。

4.arguments的使用

不确定有多少个实参传递时可以用arguments来获取。在JavaScript中,Documents实际上,它是当前函数的一个内置对象,arguments对象中存储了传递的所有实参

function fn() {
   //console.log(arguments);
   //console.log(arguments[2]);
   //可以按照数组的遍历访问值
    for (var i = 0; i < arguments.length; i++ ) {
        console.log(arguments[i]);
    }
}

fn(1,2,3,6,8);

arguments展示形式是一个伪数组:并不是真正的数组,它没有真正数组的一些方法。只有函数才有arguments对象。

案例1:求函数任意个数的最大值

5.函数可以调用函数

在这里插入图片描述

6.函数案例

6.1冒泡
6.2判断闰年
function runyear(year) {
    var flag = false;
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        flag = ture;
    }
    return flag;
}
runyear(1999);

7.函数两种声明方式

7.1命名函数

function 函数名(){

}

7.2匿名函数 (变量赋值方式)

var 变量名 = function(){}; 此时调用函数时是:变量名();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值