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