1、数组的概念
所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。
2、数组的定义
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。
3、数组的作用:
可以一次性存储多个数据
4、 创建数组的方式
1、通过构造函数创建数组
语法:
var 数组名=new Array();
var array=new Array();//定义了一个数组
数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来,如果没有数据,就看不到数据
*
* var 数组名=new Array(长度);
如果数组中没有数据,但是有长度---,数组中的每个值就是undefined
构造函数的方式创建数组的时候,如果在Array(一个数字)--->数组的长度(数组元素的个数)
如果在Array(多个值);这个数组中就有数据了,数组的长度就是这些数据的个数
2. 通过字面量的方式创建数组
var 数组名=[];//空数组
var array=[];
* 无论是构造函数的方式还是字面量的方式,定义的数组,如果有长度,那么默认是undefined
// 创建一个空数组
var arr1 = [];
// 创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr2 = [1, 3, 4];
// 创建一个包含2个字符串的数组
var arr3 = ['a', 'c'];
// 可以通过数组的length属性获取数组的长度
console.log(arr3.length);
// 可以设置length属性改变数组中元素的个数
arr3.length = 0;
5、获取数组元素
数组索引(下标):用来存储或者访问数组中的数据的,索引从0开始,到长度减1结束
数组的索引和数组的长度的关系:长度减1就是最大的索引值
可以通过索引(下标)获取数组的元素
也可以通过索引来设置数组中元素的值
// 格式:数组名[下标] 下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ['red',, 'green', 'blue'];
arr[0]; // red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined
6、遍历数组
遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。
数组遍历的基本语法
for(var i = 0; i < arr.length; i++) {
// 数组遍历的固定结构
}
案例1:求数组中所有元素的和
var arr1=[12,54,26,87,236,45];
var sum=0;
for (var i = 0; i < arr1.length; i++) {
sum=sum+arr1[i];
}
alert(sum);
案例2:要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组
var arr1=[74,0,25,0,14,6,0,];
var arr2=[];
for (var i = 0; i < arr1.length; i++) {
if (arr1[i]!=0) {
arr2[arr2.length]=arr1[i];
}
}
console.log(arr2);
案例3:翻转数组,把数组中的数字位置调换
for (var i = 0; i < arr3.length/2; i++) {
//先把第一个元素放在第三方变量中
var temp=arr3[i];
arr3[i]=arr3[arr3.length-1-i];
arr3[arr3.length-1-i]=temp;
}
console.log(arr3);var arr3=[44,52,10,36,78,99,102];
案例四:冒泡排序
var arr=[48,52,44,96,32,15,12,85,3];
//控制比较的轮数
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
}
}
}
7、数组中新增元素
数组的赋值
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";