数组
1. 数组:
· 数组顾名思义是一组数据相当于一组变量
格式:
var a=[]; 这是申请一个数组且未定长度
var a=new Array(10);
上面代码就是给设置一个数组变量长度为10,需要注意的是:这种方法创建的数组虽然指定了长度,但是实际情况数组都是变长的,也就是说即使指定了长度为10,但仍可以将元素存储在规定长度以外,注意:这时长度会随之改变。例如:
<script>
var a=new Array(10);
a[0]=12;
a[1]=13;
a[2]=15;
a[3]=13;
a[4]=19;
a[5]=55;
a[6]=25;
a[7]=100;
a[8]=23;
a[9]=43;
a[10]=44;
a[11]=26;
a[12]=25;
document.write(a.length);
</script>
这个时候输出结果即为数组a的长度:13
数组有很大,很多的作用,现在就先说些简单基础的作用:
商品竞猜
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
商品竞猜
<h5>规则:</h5>
<ul>
<li>1.随机产生一个商品价格200-300</li>
<li>2.用户竞猜10次</li>
<li>3.如果用户输入的价格>实际产品价格提示对不起大了</li>
<li>4.如果用户输入的价格<实际产生的价格提示 小了</li>
<li>5.如果用户输入的价格==产生的价格 提示恭喜</li>
<li>6.如果用户10次都没有猜对,GAMEOVER</li>
</ul>
<script>
var price = parseInt(Math.random()*100+200);
for(var n=1;n<=10;n++){
var userinput=window.prompt("请输入商品价格");
var valinput = parseInt(userinput);
if(valinput>price){
document.write("对不起,大了");
}
if(valinput<price)
{
document.write("对不起,小了");
}
if(valinput==price)
{
alert("恭喜,成功,一共猜了"+n+"次");
break;
}
}
</script>
</body>
</html>
数组元素的排序
方法一
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
数组元素的排序
<script>
var score=[11,22,33,44,55,66,88,32,19,65];
document.write("数组的长度:"+score.length+"<br>");
for(var n=0;n<10;n++)
{
document.write("第"+n+"个学生成绩="+score[n]+"<br>");
}
var max=score[0];
for(var n=0;n<10;n++){
if(score[n]>max){
max=score[n];
}
}
document.write("最高分="+max+"<br>");
var min=score[0];
for(var n=0;n<10;n++){
if(score[n]<min){
min=score[n];
}
}
document.write("最低分="+min+"<br>");
var sum=0
for(var n=0;n<10;n++)
{
sum=sum+score[n];
}
var avg=sum/score.length;
document.write("总分="+sum+"<br>");
document.write("平均值="+avg+"<br>");
for(var i=0;i<score.length-1;i++){
for(var j=i+1;j<score.length;j++)
{
if(score[j]>score[i])
{
var tmp=score[i];
score[i]=score[j];
score[j]=tmp;
}
}
}
document.write("<br><br>
排序之后
<br>");for(var n=0;n<score.length;n++){
document.write("第"+n+"个学生成绩="+score[n]+"<br>");
}
</script>
</body>
</html>
方法二:
1.求最大数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>最高分</title>
</head>
<body>
<script>
var a=[25,58,65,35,51,56,68,84,95,52,26];
var max=a[0];//给数组里的第一个数然后下面的for循环里经过循环比较得出最大
for (var n=1;n< a.length-1;n++){
if(a[n]>max){
max=a[n];
//如果a[n]>max的话将a[n]值给max通过循环可挑选出最大值赋予max
}
}
document.write(max+"<br>");
</script>
</body>
</html>
注://后内容为注释。
2.用选择排序法排大小
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>小到大排序</title>
</head>
<body>
<script>
var a=[25,58,65,35,51,56,68,84,95,52,26];
for (var n=0;n< a.length;n++){
for (var m=n+1;m< a.length;m++){
if (a[n]>a[m]){
var x=a[n];
a[n]=a[m];
a[m]=x;
//从a[0]开始与后面比较将小的赋予a[0]将a[0]的值通过x进行交换
//(即将a[n]的值与a[m]交换通过多次循环a[0]的值最小),此时内for
// 循环结束跳出到外循环,a[1]通过循环到次小(第二小),然后a[2]...以此类推
}
}
document.write(a[n]+"<br>")
}
</script>
</body>
</html>
3.冒泡排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>冒泡有大到小</title>
</head>
<body>
<script>
var a=[100,56,23,54,32,66,84,56,53,64,1]
for (var n=0;n< a.length;n++){
for(var m=0;m<a.length-n;m++){
//m<a.length-n:因为每一次循环后就有一个确定的最小数排到最后不用再对他进行比较
if (a[m]<a[m+1]){
var x=a[m];//如果a[m]<a[m+1]那么交换两者值即a[m]赋予变量x
a[m]=a[m+1];//将a[m+1]的值赋予a[m]
a[m+1]=x;//将x的值赋予a[m+1],x变量有一个桥梁作用将a[m]和a[m+]的值互换,现在a[m]>a[m+1],这就实现了两个数的排序,同样方法循环,得到最后一个数为最小
}
//跳出内for循环进入外循环n+1然后再次进入内循环排序通过两两交换得到第二个小的值会排到后面倒数第二位,然后再次跳出到外循环.....
}
}
for (var b=0;b< a.length;b++){
document.write(a[b]+"<br>");
}
</script>
</body>
</html>
方法三:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
菜单类别:<select id="Demo" onChange="change()"></select>
<select id="Menu"></select>
<script>
var menuType=['凉菜','热菜','主食'];
var menu=[['拍黄瓜','泡椒凤爪','火山下雪'],
['宫保鸡丁','红烧肉','木须肉'],
['米饭','馒头','个的汤']];
var demo=document.getElementById("Demo");
var str="";
for (var n=0;n<menuType.length;n++) {
str=str+"<option value="+n+">"+menuType[n]+"</option>"
}
demo.innerHTML=str;
var str="";
var menu1=document.getElementById("Menu");
for(var n=0;n<menu[0].length;n++){
str = str+"<option>"+menu[0][n]+"</option>";
}
menu1.innerHTML=str;
function change(){
var str="";
menu1.innerHTML="";
var row = parseInt(demo.value)
for(var n=0;n<menu[row].length;n++)
{
str = str+"<option>"+menu[row][n]+"</option>";
}
//alert(str);
menu1.innerHTML=str;
}
</script>
</body>
</html>
方法四:(push及unshift)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
数组元素的添加
<script>
var stu=[11,22,33,44,55,66];
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br><br><br><br>");
stu.push(88);
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br>");
stu.push(99,32,98);
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br>");
stu.unshift(99,32,98);
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br>");
stu.pop(99,32,98);
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br>");
stu.splice(2,1);
for(var n=0;n<stu.length;n++){
document.write("stu["+n+"]="+stu[n]+"<br>");
}
document.write("<br>");
</script>
</body>
</html>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30545764/viewspace-2121002/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30545764/viewspace-2121002/