第四章 数组 ② 代码

导读:本篇文章讲解 第四章 数组 ② 代码,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.课前测试

循环输入5个人的分数,存入数组中。如果分数有误则中断输入,提示错误。
如果所有分数无误,循环输出数组中的分数。

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			//循环输入5个人的分数,存入数组中。如果分数有误则中断输入,提示错误。
			//如果所有分数无误,循环输出数组中的分数。

			var a=new Array(5);  //定义到外围
			var flag=true;
			for (var i=1; i<=5;i++ )
			{
				var cj=Number(prompt("请输入第"+i+"个数字:",""));
					
				if (cj>100 || cj<=0){
					document.write("输入错误!");
					flag=false;
					break;  //break 中止if循环
				}

				a[i]=cj;
				//document.write("输入的第"+i+"个数是:"+a[i]);
			
			}
			if(flag){
				for (var i=1; i<=5;i++ ){
					document.write("输入的第"+i+"个数是:"+a[i]+"<br/>");
				}
				
			}
				
		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:
在这里插入图片描述
在这里插入图片描述

2.冒泡排序

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			/*
			//两个数比较
			var a=[120,20];
			//比较和换位
			if(a[0]>a[1]){
				var temp=a[0];
				a[0]=a[1];
				a[1]=temp;

			}
			document.write(a);
			*/
			
			
			/*
			//多个数字  for循环嵌套实现
			var b=[12,20,21,13,15];
			//比较和换位
			for(var d=1;d<b.length-1 ;d++){
				for(var c=0;c<b.length-d;c++){
					if(b[c]>b[c+1]){
					var temp=b[c];
					b[c]=b[c+1];
					b[c+1]=temp;
					}
				}
			}
			document.write(b);
			*/
			var e=[3,2,4,1,7,4,8];
			for(var g=1;g<e.length-1;g++){
				for(var f=0;f<e.length-g;f++){
					if(e[f]>e[f+1]){
						var temp=e[f];
						e[f]=e[f+1];
						e[f+1]=temp;
					}
				}
			}
			
		
			document.write(e);

			/*
			if(e[0]>e[1]){
				var temp=e[0];
				e[0]=e[1];
				e[1]=temp;

			}
			if(e[1]>e[2]){
				var temp=e[0];
				e[0]=e[1];
				e[1]=temp;

			}
			if(e[2]>e[3]){
				var temp=e[0];
				e[0]=e[1];
				e[1]=temp;

			}
			if(e[3]>e[4]){
				var temp=e[0];
				e[0]=e[1];
				e[1]=temp;

			}
			*/					
			
			/*
			//多个数字  for循环嵌套实现
			var b=[12,20,21,13,15];
			//比较和换位
			for(var d=1;d<b.length-1;d++){
				for(var c=0;c<b.length-d;c++){
					if(b[c]>b[c+1]){
					var temp=b[c];
					b[c]=b[c+1];
					b[c+1]=temp;
					}
				}
			}
			document.write(b);
			*/

		</script>
	</head>
		
	<body>
		
	</body>
</html>

运行结果如下:
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
	<title> my page </title>
	<style type="text/css">

	</style>

	<script type="text/javascript">
		/*
		var ary = [40,20,30,10,50 ];
		//第二轮比较:
		//0-1
		//1-2
		//2-3
		*/

		var ary =[40,50,20,30,10,8,6,7,9,5,2,1,3];
		//外层控制轮数
		for(var i=1;i<ary.length;i++){
			//内层控制每一轮的比较
			for(var j=0;j<ary.length-i;j++){
				//前面的和后面的比
				if(ary[j]>ary[j+1]){
					//如果前大后小换位
					var temp = ary[j];
					ary[j]=ary[j+1];
					ary[j+1]=temp;
				}
			}
		}

		document.write(ary);

		/*
		//0-1
		if(ary[0]>ary[1]){
			var temp = ary[0];
			ary[0]=ary[1];
			ary[1]=temp;
		}
		//1-2
		if(ary[1]>ary[2]){
			var temp = ary[1];
			ary[1]=ary[2];
			ary[2]=temp;
		}
		//2-3
		if(ary[2]>ary[3]){
			var temp = ary[2];
			ary[2]=ary[3];
			ary[3]=temp;
		}
		//3-4
		if(ary[3]>ary[4]){
			var temp = ary[3];
			ary[3]=ary[4];
			ary[4]=temp;
		}

		document.write(ary);
		*/

		/*
		var ary = [20,10];
		//比较和换位
		if(ary[0]>ary[1]){
			//换位
			var temp = ary[0];
			ary[0] = ary[1];
			ary[1] = temp;
		}

		document.write(ary);
		*/

	</script>
	</head>

	<body>

	</body>
</html>

运行结果如下:
在这里插入图片描述

3.数组的查找 (80)

循环输入5个分数存入数组,如果分数输入有误(小于0,大于100),要提示输入错误,如果无误则输出数组。输出成绩为80的分数的位置

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			var a=new Array(5);  //定义到外围
			var flag=true;
			for (var i=1; i<=5;i++ )
			{
				var cj=Number(prompt("请输入第"+i+"个数字:",""));
					
				if (cj>100 || cj<=0){
					document.write("输入错误!");
					flag=false;
					break;
				}

				a[i]=cj;
				//document.write("输入的第"+i+"个数是:"+a[i]+"<br/>");
				
			}
			//flag 
			var sb=1;
			if (flag)
			{	
				for (i=1; i<=5;i++ ){
					//document.write("输入的第"+i+"个数是:"+a[i]);
					if (a[i]==80){
						document.write("数值等于80的数是第"+i+"个数!"+"<br/>"); 
						sb++;
					}					
				}
				if(sb==1){
					document.write("没有数值等于80的数!");
				}
			}

		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:
在这里插入图片描述
在这里插入图片描述

4、数组的查找(最大值、最小值)

循环输入5个数字到数组中,统计最大值,最小值,最大值的位置和最小值的位置
 var ary = [10,40,32,89,12]

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			//4.循环输入5个数字到数组中,统计最大值,最小值,最大值的位置和最小值的位置
			//var ary = [10,40,32,89,12]
			
			var a=new Array(5);

			for(var b=0;b<a.length;b++){
				var num=Number(prompt("请输入第"+(b+1)+"个数字:",""));
				a[b]=num;
			}
			
			var a1=a.concat([]);  
			//与一个空数组[]拼接 这样新数组a1就会有新的地址 就不会影响数组a的地址  方便查询max|min
			//赋值给新的数组 方便查询max min 的位置

			for(var c=1;c<a.length;c++){
				for(var d=0;d<a.length-1;d++){
					if(a1[d]>a1[d+1]){
						var temp=a1[d];
						a1[d]=a1[d+1];
						a1[d+1]=temp;
					}
				}
			}


			var min=a1[0],max=a1[4];
			document.write("数组的最大值为:"+max+"<br/>");
			document.write("数组的最小值为:"+min+"<br/>");
			
			document.write("数组的最大值的位置为:"+(a.indexOf(max)+1)+"<br/>");
			document.write("数组的最x值的位置为:"+(a.indexOf(min)+1)+"<br/>");

			
			/*   //不能这么写 因为数组排序变动之后,存储位置也会发生变化
			for(var b=0;b<a.length;b++){
				if(a[b]==max){
					document.write("最大值的位置在第"+(b+1)+"个"+"<br/>");
				}else if(a[b]==min){
					document.write("最小值的位置在第"+(b+1)+"个"+"<br/>");
				}
			}
			*/
			
		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:
在这里插入图片描述

5.数组的查找 (大于80)

定义长度为10的数组,存储10个人的分数。统计大于80分的人数。

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
		//3. 定义长度为10的数组,存储10个人的分数。统计大于80分的人数。
		var a=new Array(10);
		
		var flag=true;
		for(var b=0;b<a.length;b++){
			var num=Number(prompt("请输入第"+(b+1)+"个人的成绩:",""));
			
			if(num<0 || num>100){
				document.write("成绩有误!请重新输入!");
				flag=false;
				break;
			}

			a[b]=num;

		}
		
		var c=0; //c 大于80的人数
		if(flag){
			for(var b=0;b<a.length;b++){
				if(a[b]>80){
					c++;
				}
			}
			if(c!=0){
				document.write("大于80分的人数为:"+c);
			}else{
				document.write("大于80分的人数为0!");
			}
		}

		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:
#pic_center
在这里插入图片描述
在这里插入图片描述

6、splice实现数组的插入

使用splice实现有序数组的数据插入。
通过输入框输入一个数,将输入的数字插入到数组中之后要保证数组依然有序:
示例: 数组 [10,50,70,89,99],输入一个数字 83,将83插入到数组中,插入之后数组
依然有序,数组变为[10,50,70,83,89,99]

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
		//5.使用splice实现有序数组的数据插入。
		//通过输入框输入一个数,将输入的数字插入到数组中之后要保证数组依然有序:
		//示例: 数组 [10,50,70,89,99],输入一个数字 83,将83插入到数组中,插入之后数组
		//依然有序,数组变为[10,50,70,83,89,99]
					//  	  0  1  2  3  4  5
			/*
			var ary3 = ["aaa","bbb","ccc","ddd","eee"];
			ary3.splice(2,0,"xxx","yyy");
			document.write(ary3);
			*/
			
			var a=[10,50,70,89,99];

			var num=Number(prompt("请输入一个数字:",""));

			for(var b=a.length-1;b>=0;b--){
				if(a[b]<=num){
					a.splice((b+1),0,num); //和a[b]做出比较 插入在a[b] 前边
					document.write(a);
					break;
				}
			}

		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:

在这里插入图片描述

7、数组的查找和删除

var ary = [10,20,30,40,50,10,20,34,56,50]
 将数组中的去重,返回去重之后的数组

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			//var ary = [10,20,30,40,50,10,20,34,56,50]
			//将数组中的去重,返回去重之后的数组

			
			//var ary3 = ["aaa","bbb","ccc","ddd","eee"];
			//ary3.splice(2,0,"xxx","yyy");
			//document.write(ary3); //输出: aaa,bbb,xxx,yyy,ccc,ddd,eee 
			
			
			//var ary = [55,48,35,73,20,15,57,50,33,0,97,16,30,28,44,71,25,85,21,86,87,13,82,54,1,61,92,93,40,56,79,88,39,41,58,45];
			 
			var ary = [10,20,30,40,50,10,20,34,56,50];
			//			0  1   2  3 4  5  6  7  8  9
			
			//总结规律 
			for( var a=0;a<ary.length;a++){
				for(var b=a+1;b<ary.length;b++){
					if(ary[a]==ary[b]){
						ary.splice(b,1);
					}
				}
			}
			
			document.write(ary);
			
			
			/*
			//ary[0]
			for(var a=1;a<ary.length;a++){
				if(ary[0]==ary[a]){
					ary.splice(a,1);    // 输出;10,20,30,40,50,20,34,56,50    删除了10
				}
			}
			document.write(ary+"<br/>"); 
			
			//ary[1]
			for(var a=2;a<ary.length;a++){
				if(ary[1]==ary[a]){    
					ary.splice(a,1);      //输出 :10,20,30,40,50,34,56,50    删除了20
				}
			}
			document.write(ary+"<br/>");

			*/

		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:

在这里插入图片描述

8、数组的查找和删除 Math random() [0,1)

定义长度为50的数组,用于存储1-100的随机数(Math.random()),要求50个数据都不能重复。

代码如下:

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
	//2.定义长度为50的数组,用于存储1-100的随机数(Math.random()),要求50个数据都不能重复。
		var a=new Array(50);

		for( var b=0;b<a.length;b++){
			a[b]=parseInt(Math.random()*100);  //转化为随机整数
		}
		
//Math.random() 函数返回一个浮点数, 伪随机数在范围从0 到小于1,也就是说,从 0(包括 0)往上,但是不包//括 1(排除 1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重//置。

		for(var c=0;c<a.length-1;c++){
			for(var d=c+1;d<a.length;d++){
				if(a[c]==a[d]){
					a.splice(d,1);
				}
			}
		}
		document.write(a);
		
		</script>
	</head>

	<body>
		
	</body>
</html>

运行结果如下:
在这里插入图片描述

9.数组常用方法/函数 splice push sort join concat write

代码如下:

<!DOCTYPE html>
<html>
 <head>
  <title> my page </title>
  <style type="text/css">
 
  </style>

  <script type="text/javascript">
	var ary = [3,5,7,'a','c','b'];
	//删除下标为1位置的元素
	//splice(位置,删除个数,新数据..)
	//ary.splice(1,1);
	
	//将下标为1位置的元素替换为x
	//ary.splice(1,1,'x');

	//在下标为1位置上插入10,20
	ary.splice(1,0,10,20);
	document.write(ary);

	/*
	//push:从数组尾部添加元素
	var ary = [];
	ary.push("a");
	ary.push("b");
	ary.push("d");
	ary.push("c");
	document.write(ary);
	*/

	/*
	var ary = [3,9,8,4,10,101,23,7,6,5,1,2];
	//排序
	ary.sort();
	document.write(ary);
	*/

   /*
   var ary = [3,4,5,9,10];
   //join:以指定符号将数组元素拼接成字符串
   var str = ary.join("-");
   document.write(str);
   */

   /*
   var a1 = [1,2,3];
   var a2 = ["a","b","c"];
   //concat:将多个数组拼接起来,返回拼接后的数组
   var a3 = a1.concat(a2);
   document.write(a3);
   document.write("<br/>")
   document.write(a1);
   document.write("<br/>")
   document.write(a2);
   */
  </script>
 </head>

 <body>
  
 </body>
</html>

运行结果如下:
在这里插入图片描述

<!DOCTYPE HTML>
<html>
	<head>
		<meta charset="utf-8"/>
		<title> New Document </title>
		<script type="text/javascript">
			var ry2 = [20,10,30,50,60];
			ry2.pop();
			document.write(ry2);

			var ary3 = ["aaa","bbb","ccc","ddd","eee"];
			alert(ary3.indexOf("ggg"));

			var ary4 = [5,3,2,1,4,12,100];

			
			ary4.sort();
			document.write(ary4);
		</script>
	</head>

	<body>
		
	</body>
</html>

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/118168.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!