数组的基础知识
数组:一组有序的数据
数组的作用:一次性存储多个数据
数组的定义:
1.通过构造函数的方式创建数组
var 数组名=new Array();
var number=new Array();
数组的名字如果直接输出,那么直接就可以把数组中的数据显示出来;如果没有数据就看不到数据
var 数组名=new Array(长度);
如果数组中没有数据,但是有长度---数组中的每个值都是undefined
构造函数的方式创建数组的时候,如果在Array(一个数字)--->数组的长度(数组元素的个数)
如果在Array(多个值);这个数组中就有数据了,数组的长度就是这些数据的个数
2.通过字面量的方式创建数组
var 数组名=[];//空数组
var array[];
无论是构造函数的方式还是字面量的方式,创建的数组,如果有长度,那么默认是undefined
数组的索引(下标)和数组的长度的关系:长度减1就是最大的索引值
* 如何设置数组中某个位置的值?
* 数组名[下标]=值;
* arr[3]=100;
* 如何获取数组中某个位置的值?
* var result=数组名[下标];
* console.log(result);
获取数组长度的方法:数组名.length
var arr=[10,20,30,40,50,60,70,80,10,20,3043,5];
console.log(arr.length);
注意:
1.数组中存储的数据类型是可以不一样
var arr=[10,"哈哈",true,null,undefined,new Object()];
console.log(arr);
2.数组的长度是可以改变
var arr=[];
通过索引来设置数组中的元素的值
arr[0]=10;
arr[1]=20;
console.log(arr.length);
数组案例
1.数组遍历
var arry=[1,2,3,4,4,55,5554];
for(var i=0;i<arry.length;i++){
console.log(arry[i]);
}
2.把数组中每个元素用|拼接到一起产生一个字符串并输出
var arry=["w","e","s","f"];
var str="";
for(var i=0;i<arry.length-1;i++){
str=str+(arry[i]+"|");
}
console.log(str+arry[arry.length-1]);
3.去掉数组中重复的0,把其他的数据放在一个新的数组中
var arr = [10, 0, 20, 0, 30, 0, 50];
var str=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=0)
//把新数组的长度作为下标使用,数组的长度是可以改变的
str[str.length]=arr[i];
}
console.log(str);
4.反转数组---把数组中的数据的位置调换
var num=[23,34,56,21,32,43];
for(var i=0;i<num.length/2;i++){
var temp;
temp=num[i];
num[i]=num[num.length-i-1];
num[num.length-i-1]=temp;
}
console.log(num);
4.提示用户输入班级人数,求总成绩,平均值,最高分,最低分(分开求)
//提示用户输入人数,并转成数字类型
var perCount = parseInt(prompt("请输入班级人数"));
//定义数组存储班级的每个人的成绩
var perScores = [];
//循环的方式录入每个人的成绩
for (var i = 0; i < perCount; i++) {
//把每个人的成绩存储到数组中
perScores[perScores.length] = parseInt(prompt("请输入第" + (i + 1) + "个人的成绩:"));
}
console.log(perScores);
//求总成绩
var sum = 0;
var avg = 0;//平均值
var max=perScores[0];//最大值
var min=perScores[0];//最小值
for (var i = 0; i < perScores.length; i++) {
sum += perScores[i];//求和
//求最大值
if(max<perScores[i]){
max=perScores[i];
}
//求最小值
if(min>perScores[i]){
min=perScores[i];
}
}
//平均值
avg = sum / perScores.length;
console.log("和为:"+sum);
console.log("平均值:"+avg);
console.log("最大值:"+max);
console.log("最小值:"+min)
5.冒泡排序:把所有的数据按照一定的顺序进行排列(从小到大,从大到下)
var arr = [10, 0, 100, 20, 60, 30];
//循环控制比较的轮数
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;
}
}
}
console.log(arr);