为什么要学习数组?
之前学习的数据类型,只能存储一个值(比如:Number/String。我们想存储班级中所有学生的姓名,此时该如何存储?
数组的概念
所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中。那么这个集合我们就成为数组。
数组的定义
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。
通过数组字面量创建数组
<script>
//创建一个空数组
var arr1 = [];
//创建一个包含三个数值的数组,多个数组项以逗号隔开
var arr2 = [1,2,3];
//创建一个包含俩个字符串的数组
var arr3 = ['a','c'];
//可以通过数组的length属性获取数组的长度
console.log(arr3.length);
//可以设置length属性改变数组中元素的个数
arr3.length = 0;
</script>
获取数组元素
获取数组元素
var arr = ['red','gerrn','blue']
arr[0];//red
arr[2];//blue
arr[3];//这个数组的最大下标为2,因此返回undefined
遍历数组
遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。
数组遍历的基本语法:
for(var i = 0;i<arr.length;i++){
//数组遍历的固定结构
}
数组中新增元素
数组的赋值
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";
案例
求一组数中的所有数的和的平均值
//求一组数中的所有数的和的平均值
var str = [1,5,6,8,10,4];
var sum = 0;
var a;
for(var i=0;i<str.length;i++){
sum+=str[i]
a=sum/str.length
}
console.log(a);
求一组数中的最大值和最小值,以及所在位置
//求一组数中的最大值和最小值,以及所在位置
var a = [2,5,3,11,8,7]
var max = a[0];
var min = a[0];
for(var i=0;i<a.length;i++){
if(max<a[i]){
max=a[i];
}
if(min>a[i]){
min=a[i];
}
}
console.log(max);
console.log(min);
将字符串数组用|或其他符号分割
//将字符串数组用|或其他符号分割
var a = ['q','w','e']
var b = '|';
var c = '';
for(var i=0;i<a.length;i++){
c+=b+a[i]
}
console.log(c);
要求将数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组
var arr=[0,1,2,3]
for(i=0;i<arr.length;i++){
if(arr[i]==0){
arr.splice(i,1);
}
}
console.log(arr);
反转数组
//翻转数组
var a = [1,5,44,85,46,3]
// var arr = [1,2,3];
console.log(a);
console.log(a.reverse());
冒泡排序,从小到大
var arr=[12,23,1,11,2,56];
// 冒泡排序
for(var i=0;i<arr.length-1;i++){ // 控制比较的轮数
for(var j=0;j<arr.length-i-1;j++){
var temp=0;
if(arr[j]>arr[j+1]){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
console.log(arr);
}