# 数组
# 什么叫数组
一系列数据的集合,每一项可以保存任何类型的数据,称为数组的元素,每个元素之间用逗号隔开
数组格式:[1,2,3]
# 数组创建方式
//1)字面量(直接量)(推荐)
var arr = [1,2,3];
//2)使用构造函数创建
var arr = new Array();//创建一个空数组
var arr = new Array(7);//创建一个长度为7的数组(数组项都为undefined)
var arr = new Array('王大锤',18 ,'普通青年','广州');//创建数组并同时写入数据
# 数组操作
# 数组访问与写入
- 索引(下标):从0开始
var arr = ['html5','css3','javascript']; //访问 arr[0]; //=> 'html5' arr[2]; //=> 'javascript' //写入 arr[3] = 'web前端';
- length:表示数组的长度
arr.length; //=> 3
# 数组遍历
for循环
格式:for(变量初始化;判断条件;变量更新){执行语句}
var arr = ['html5','css3','javascript']; for(var i=0;i<arr.length;i++){ console.log(arr[i]); }
# 多维数组
即数组里面包含数组
var arr = [1,2,'html5',[3,4,'css3'],[5,6,'javascript']]
arr[3][2]; //=>'css3'
# 数组方法
- push: 往数组尾部添加一个或多个元素,返回数组新的长度
- pop:删除数组最后一个元素,返回删除的元素
- unshift:往数组开头添加一个或多个元素,返回数组新的长度
- shift:删除数组第一个元素,返回删除的元素
- sort:将数组中的元素排序,并返回排序后的数组
默认以字符串的排列方式(转换成ASCII码进行对比)
- reverse:将数组中的元素颠倒顺序,返回逆序后的数组
- slice(start[,end]):返回数组的片段或子数组,从start开始到end(不包括end所对应的元素)
如果省略end参数,则截取到数组的最后一项
- splice(start,deleteNum,…items):在数组中插入、删除、替换的通用方法
- start:起始索引位置
- deleteNum:要删除的数量
- items:插入的元素(可以是多个)
- join(separator) 返回字符串值,其中包含了连接到一起的数组的所有元素
- separator为分隔符,默认为逗号
- concat() 返回一个新数组,这个新数组是由调用这个方法的数组和参数组成
参数可以是多个
# 值类型与引用类型的区别
[内存中的状态]
# 数组复制与传输
- 如何复制数组
- 把数组作为函数的参数
# 数组排序
- 冒泡排序法
- 选择排序法
[练习]
- 创建一个包含50个三位数的随机数组
- 找出以下数组中所有小于10的元素并组成一个新的数组
[10,15,2,32,5,4,20,8,48,54,6] - 编写一个map(arr)函数,把数组中的每一个数字都增加20%,并返回新的数组
- 编写一个has(arr,60)函数,判断arr数组中是否包含60这个数
- 有一个从小到大排序的数组[3,5,6,20,22,33,88]。现输入一个数,要求按原来的规律将它插入数组中,并打印出新的数组
- 分别计算出下面数组的最大值,最小值和平均值,并输出他们的索引
[10,2,8,55,32,18,9,11,30,16,19,20]