数组的基础知识
数组:一组有序的数据
数组的作用:一次性存储多个数据
数组的定义:
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) ;