1.数组的概念
普通变量一次只能存储一个值,数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式;
数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。
数组是一种将一组数据存储在单个变量名下的方式;
2.创建数组
2.1.数组的创建方式
js中创建数组有两种方式:1.利用new创建数组;2.利用数组字面量创建数组;
2.2.利用new关键字创建数组
var 数组名 = new Array();
var arr = new Array();//创建一个新的空数组;
2.3.利用数组字面量[]创建数组
var 数组名 = []; //使用数组字面量的方式创建空的数组;
var 数组名 = ['小白','小黑','大黄']; //使用数组字面量方式创建带初始值的数组;
数组的字面量是[];
声明数组并赋值被称为数组的初始化;
数组里面的数据一定要用逗号隔开;数组中的数据,称为数组元素;
数组中可以存放任意类型的数据,例如字符串,数字,布尔值等;
3.获取数组中的元素
3.1.数组的索引
索引(下标):用来访问数组元素的序号(数组下标从0开始)。
数组可以通过索引来访问、设置、修改对应的数组元素,可以通过"数组名[索引]"的形式来获取数组中的元素;(获取即访问);
索引号超出数组长度后,输出undefined;并自动添加到该索引值加1的长度;
var arr1 = [1,2,3]; //定义数组
alert(arr1[1]); //获取数组中的第二个元素
4.遍历数组
遍历:将数组中的每个元素从头到尾都访问一次
var arr = ['red','green','blue'];
for(var i = 0;i<3;i++){
//i是计数器,当索引号使用 将i<3换成i<数组名.length,可以不用计算数组中的个数
console.log(arr[i]);
//索引号是从0开始的 arr[i]是数组元素 第i个数组元素
}
数组的长度:使用"数组名.length"可以访问数组元素的数量(数组长度)( 动态检测数组长度 可以使得遍历结果更准确);
注意:数组的长度是元素个数 不要和索引号混淆 max-index=length-1;
问题1:求数组[2,6,1,7,4]里面所有的元素的和以及平均值
(1)声明一个求和变量 sum;
(2)遍历这个数组,把里面的每个数组元素加到sum里面;
(3)用求和变量sum除以数组的长度就可以得到数组的平均值
var arr = [2,6,1,7,4];
var sum = 0;
var average = 0;
for(var i = 0;i<arr.length;i++){
sum +=arr[i]; //加的是数组元素arr[i] 不是计数器i
}
average = sum/arr.length;
console。log(average,sum); //输出多个变量 需要用逗号分隔
问题2:输出数组[2,6,1,77,52,25,7]中的最大值
(1)声明一个保存最大元素的变量max;
(2)默认最大值可以取数组中的第一个元素;
(3)遍历这个数组,把里面每一个数组元素和max相比较;
(4)如果这个数组元素大于max,那么就将这个数组元素放到max中,否则就进行下一轮比较;
(5)最后输出max的值;
var arr = [2,6,1,77,52,25,7];
var max = 0;
for(var i=1;i<arr.length;i++){
if(arr[i]>max){
max = arr[i];
}else{
continue;
}
}
console.log('该数组中的最大值是'+max);
问题3:数组转换为分割字符串
将数组['red','green','blue','pink']转换为字符串,并且用|或其他符号分割输出:'red|green|blue|pink|'
(1)需要一个新变量用于存放转换完的字符串 str;
(2)遍历原来的数组,分别将里面数据取出来,加到字符串里面;
(3)同时在后面多加一个分隔符;
var arr = ['red','green','blue','black'];
var str = ' ';
var sep = '|'; //可以省略这一步 并把下面的sep直接改成分隔符号 记得用引号
for(var i = 0;i<arr.length;i++){
str += arr[i] + sep; } console.log(str);
5.数组中新增元素
5.1.通过修改length长度新增数组元素
修改length长度来实现数组扩容的目的;
length属性是可读写的;
var arr = ['red,'green','blue','yellow'];
arr.length = 7;
console.log(arr);
console.log(arr[4]);
console.log(arr[5]);
console.log(arr[6]);
其中索引号是4,5,6的空间没有赋值,声明变量但是没有初始化,所以默认值就是undefined;
5.2.通过修改索引号新增数组元素(追加数组元素)(如果索引号没有被占用就是还没定义 那么就是新增 如果被占用了 那么就会被修改替换掉原来的数组元素)
var arr1 = ['red','green','blue'];
arr1[3] = yellow; //不要直接给数组名赋值 会覆盖掉之前的元素
console.log(arr1);