数组:
定义:使用单独的变量名来存储一系列的值。
类型:数组弱类型语言。
可以存放任意类型数据,定义时不需要指定长度,没有集合。
赋值方式:
var attr=Array(1,3.14,"aa");
var attr=[1,3.14,"aa"];
var attr[0]="1"
var attr=Array(); attr.push(cc)
定义长度:attr=Array(数值)。
属性:
attr.length:查看数组长度。
遍历数组:
for (var i=0;i<atte.length;i++){}
for(var a in attr)
例子:
//输入10个成绩,求总分,最高,最低,平均值 var attr=Array(60,90,70,80,85,75,66,88,75,100); var maxs=0; var mins=100; var sum=0; var ave=0; for(var i=0;i<attr.length;i++) { if(attr[i]>maxs){ maxs=attr[i]; } if(attr[i]<mins){ mins=attr[i]; } sum=sum+attr[i]; ave=sum/attr.length; } alert("最大值"+maxs+"最小值"+mins+"和为"+sum+"平均值为"+ave);
//判断输入的值是否有重复,如果重复就输出索引号,如果无重复就录入 var c=parseInt(prompt("请输入一个3的阶乘"));//prompt中的值需要转型,否则可能出错 var i=[3,6,9,12,15,18,21,24,27,30,33,36,39,42,45]; if(i.indexOf(c)==-1){ i.push(c); }else { alert(i.indexOf(c)) };
//冒泡排序 var i=[33,9,98,6,77,55,32,16,99,100,57,22,0,46,26] for(var a=1;a<i.length;a++)//控制轮次 { for(var b=0;b<i.length-a;b++)//控制次数 { if(i[b]>i[b+1])//函数体 { c=i[b]; i[b]=i[b+1]; i[b+1]=c; } } } alert(i);
//二分法查找数据 var attr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]; var v=parseInt(prompt("请输入一个20及以内的值")); var minsy=1; var midsy; var maxsy=attr.length-1; while(true) //进入循环 { midsy=parseInt((minsy+maxsy)/2); if(attr[midsy]==v) //判断是否等于中间值 { break; } if(midsy==minsy) //判断中间值是否等于最小值,防止进入无限循环 { if(attr[midsy+1]==v) { midsy=midsy+1; break; }else { midsy=-1; break; } } if(attr[midsy]>v) //判断是否大于中间值 { maxsy=midsy; } else { minsy=midsy; } } alert(midsy);