数组
数组:一组有序的数据
作用:可以一次性存储多个数据
数组中存储的数据类型可以不一样
数组的定义:
1.通过构造函数创建数组
语法:
var 数组名=new Array();
var array=new Array();//定义了一个数组
数组的名字如果直接输出,那么直接就可以把书组中的数据显示出来,如果没有数据,就看不到数据
var 数组名=new Array(长度);
如果数组中没有数据,但是有长度,那么数组中 的值就是undefined
构造函数的方式创建数组:如果Array(一个数字);---->代表数组的长度(数组元素的个数);
Array(多个值):这个数组中就有数据,数组的长度就是这些数据的个数
2.通过字面量的方式创建数组
语法:
var 数组名=[ ];//空数组
var arr=[];
无论是构造函数的方式还是字面量的方式,定义的数组,如果有长度,那么默认是undefined
数组:一组有序的数据
数组元素:数组中存储的每个数据,都可以叫做数据的元素,比如:存储了三个数据,数组中三个元素
数组长度:就是数组元素的个数,比如有三个元素,就说,数组的长度是三
数组索引(下标):用来存储或访问数组中的数据,索引从0开始,到长度减一结束
数组的索引和数组长度的关系:长度减一就实最大的索引值
如何设置数组中某个位置的值
数组名[下标]=值;
arr[3]=100;
如何获取数组中某个位置的值
var result=数组名[下标];
console.log(result);
例子
构造函数的方式:
var arr=new Array(10,20,30,40,100);
console.log(arr[4]);//获取
//设置
arr[3]=1000;
console.log(arr);
字面量的方式:
var arr=[10,20,30,40,50,60,70,80];
console.log(arr.length);
基础数组总结
数组:存储一组有序的数据;
数组的作用:一次性存储多个数据;
数组的定义方式:
1.构造函数定义数组:var 数组名=new Array();
2.字面量的方式定义数组:var 数组名=[];
var 数组名=new Arrzy();//空数组
var 数组名=new Array(值);//数组定义了有长度
var 数组名=new Array(值1,值2,值3…);定义数组,并且有说个数据
var 数组名=[];//空数组
var 数组名=[值1,值2,值2];//有三个数据
数组元素:就是数组中存储的数据
数组长度:就是数组中元素的个数
数组索引做(下标):从0开始到数组的长度减1结束
通过下标设置数组的元素:数组名[索引]=值
通过下标访问数组的数值:数组名[索引]
例子:
var arr1=new Array();//空数组
var arr2=new Array(5);//长度为5的数组,每个数组的值为undefined
var arr3=new Array(1,2,3,4,5);//长度为5的数组
var arr4=[];//空数组
var arr5=[1,2,3];//长度为3的数组
var arr6=["red","1","true"];//数组中元素的值类型可以不一样
var arr7=[];
//设置数组中元素的值
arr7[0]=10;
arr7[1]=20;
案例
1.用for循环输出每个数组的值
var arr=new Array(10,20,30,40,50,60,70);
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
2.求数组中所有元素的和
var arr1=new Array(10,20,30,40,50,60);
var sum=0;
for(var i=0;i<arr1.length;i++ ){
sum=sum+arr1[i];
}
console.log(sum);
3.求数组中元素的平均值
var arr1 = new Array(10, 20, 30, 40, 50, 60);
var sum = 0;
for (var i = 0; i < arr1.length; i++) {
sum = sum + arr1[i];
}
console.log(sum / i);
4.求数组中所有元素的最大值
var arr1 = new Array(10, 20, 30, 40, 50, 60);
//假设max值中存储的是最大值
var max=arr1[0];
for (var i = 0; i < arr1.length; i++) {
if(max<arr1[i]){
max=arr1[i];
}
}
console.log(max);
5.求所有数组中所有元素的最小值
var arr1 = new Array(10, 20, 30, 40, 50, 60);
var min=arr1[3];
for(var i = 0; i < arr1.length; i++){
if(min>arr1[i]){
min=arr1[i];
}
}
console.log(min);
6.倒序遍历数组
var arr = [10, 20, 30, 40, 50, 60];
for(var i=arr.length-1;i>=0;i--){
console.log(arr[i]);
}
7.把数组中每个元素用|拼接在一起组成一个字符串输出
var arr=["大蛇丸","佐助","鸣人"];
var str="";
for(var i=1;i<arr.length;i++){
str=str+'|'+arr[i];
}
console.log(arr[0]+str);
8.去掉数组当中重复的0,把新的数组放到以个新的数组种中
var sum=[10,0,20,0,30,0,40];
var news=[];
for(var i=0;i<sum.length;i++){
if(sum[i]!=0){
news[news.length]=sum[i];
}
}
console.log(news);
9.反转数组----把数组中的数据位置调换
var arr=[10,20,30,40,50];
for(var i=0;i<arr.length/2;i++){
var temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}
console.log(arr);
10.提示用户输入班级人数,求总成绩,平均值,最高分,最低分
var total = parseInt(prompt("请输入班级总人数"));
//用for循环输入班级里每个人的成绩
var score = [];
var sum = 0;//总和
var mean = 0;//平均值
for (var i = 0; i < total; i++) {
score[score.length] = parseInt(prompt("请输入第" + (i + 1) + "个人的成绩:"));
sum += score[i];//求和
mean = sum / score.length;//求平均值
}
var maxScore = score[0];//最高分
var minScore = score[0];//最低分
for(var i = 0; i < score.length; i++){
if (maxScore < score[i]) {
maxScore = score[i];
}//求最大值
if (minScore > score[i]) {
maxScore = score[i];
}//求最小值
}
console.log("总成绩=" + sum);
console.log("平均值=" + mean);
console.log("最大值=" + maxScore);
console.log("总小值=" + minScore);
11.冒泡排序:把所有数据按照一定的顺序进行排列(从小到大,从大到小)
var arr = [10, 20, 60, 12, 50];
//循环控制比较的轮数
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]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);