冒泡排序
1 <script>
2 //冒泡排序:把一组数据按照从大到小,或者从小到大的进行一定的排序
3 //从小到大排序
4 var num=[10,2,58,3,56,4,12];
5 //比较轮数
6 for(var i=0;i<num.length-1;i++){
7 //比较次数
8 for(var j=0;j<num.length-1-i;j++){
9 if(num[j]>num[j+1]){
10 var temp=num[j];
11 num[j]=num[j+1];
12 num[j+1]=temp;
13 }
14 }
15 }
16 console.log(num);//[2, 3, 4, 10, 12, 56, 58]
17
18 //从大到小排序
19 var num=[10,2,58,3,56,4,12];
20 //比较轮数
21 for(var i=0;i<num.length-1;i++){
22 //比较次数
23 for(var j=0;j<num.length-1-i;j++){
24 if(num[j]<num[j+1]){
25 var temp=num[j];
26 num[j]=num[j+1];
27 num[j+1]=temp;
28 }
29 }
30 }
31 console.log(num);//[58, 56, 12, 10, 4, 3, 2]
32
33 </script>
for循环
1 <script>
2 //1.在页面中打印长方形和三角形
3
4 //控制行数打印长方形
5 for(var j=0;j<5;j++){
6 //一行有多少个---控制每一行的个数
7 for(var i=0;i<5;i++){
8 document.write("★");
9 }
10 document.write("<br />");
11 }
12 //打印三角形
13 for(var i=0;i<5;i++){//控制行数
14 for(var j=0;j<i;j++){//控制个数
15 document.write("★");
16 }
17 document.write("<br />");
18 }
19
20 //2.在页面中打印乘法口诀表
21 //长方形
22 for(var i=1;i<=9;i++){
23 for(var j=1;j<=9;j++){
24 document.write(j+"*"+i+"="+i*j+" ");
25 }
26 document.write("<br />");
27 }
28 //三角形
29 for(var i=1;i<=9;i++){
30 for(var j=1;j<=i;j++){
31 document.write(j+"*"+i+"="+i*j+" ");
32 }
33 document.write("<br />");
34 }
35
36
37 //用表格
38 document.write("<table border='1'>");
39 for(var i=1;i<=9;i++){
40 document.write("<tr>");
41 for(var j=1;j<=i;j++){
42 document.write("<td>");
43 document.write(j+"*"+i+"="+i*j+" ");
44 document.write("</td>");
45 }
46 document.write("</tr>");
47 }
48 document.write("</table>");
49 //用表格不加表框
50 document.write("<table border='0'>");
51 for(var i=1;i<=9;i++){
52 document.write("<tr>");
53 for(var j=1;j<=i;j++){
54 document.write("<td>");
55 document.write(j+"*"+i+"="+i*j+" ");
56 document.write("</td>");
57 }
58 document.write("</tr>");
59 }
60 document.write("</table>");
61
62
63 //计算出1-100之间所有不能被3整除的整数的和大于或等于2000的数
64 var sum=0;
65 for(var i=1;i<=100;i++){
66 if(i%3!=0){
67 sum+=i;
68 }
69 if(sum>=2000){
70 console.log(i+"和是:"+sum);
71 break;
72 }
73 }
74 </script>
75 <script>
76 //1.在页面中打印长方形和三角形
77
78 //控制行数打印长方形
79 for(var j=0;j<5;j++){
80 //一行有多少个---控制每一行的个数
81 for(var i=0;i<5;i++){
82 document.write("★");
83 }
84 document.write("<br />");
85 }
86 //打印三角形
87 for(var i=0;i<5;i++){//控制行数
88 for(var j=0;j<i;j++){//控制个数
89 document.write("★");
90 }
91 document.write("<br />");
92 }
93
94 //2.在页面中打印乘法口诀表
95 //长方形
96 for(var i=1;i<=9;i++){
97 for(var j=1;j<=9;j++){
98 document.write(j+"*"+i+"="+i*j+" ");
99 }
100 document.write("<br />");
101 }
102 //三角形
103 for(var i=1;i<=9;i++){
104 for(var j=1;j<=i;j++){
105 document.write(j+"*"+i+"="+i*j+" ");
106 }
107 document.write("<br />");
108 }
109
110
111 //用表格
112 document.write("<table border='1'>");
113 for(var i=1;i<=9;i++){
114 document.write("<tr>");
115 for(var j=1;j<=i;j++){
116 document.write("<td>");
117 document.write(j+"*"+i+"="+i*j+" ");
118 document.write("</td>");
119 }
120 document.write("</tr>");
121 }
122 document.write("</table>");
123 //用表格不加表框
124 document.write("<table border='0'>");
125 for(var i=1;i<=9;i++){
126 document.write("<tr>");
127 for(var j=1;j<=i;j++){
128 document.write("<td>");
129 document.write(j+"*"+i+"="+i*j+" ");
130 document.write("</td>");
131 }
132 document.write("</tr>");
133 }
134 document.write("</table>");
135
136
137 //计算出1-100之间所有不能被3整除的整数的和大于或等于2000的数
138 var sum=0;
139 for(var i=1;i<=100;i++){
140 if(i%3!=0){
141 sum+=i;
142 }
143 if(sum>=2000){
144 console.log(i+"和是:"+sum);
145 break;
146 }
147 }
148 </script>
数组
1 <script>
2 /*
3 * 数组:一组数据的组合
4 * 数组的作用:可以一次性存储多个数据(类型可以相同也可以不同)
5 *
6 * 数组的元素:数组中存储的每个数据
7 * 如何获取数组的元素的值
8 * 如何设置数组的元素的值
9 * 通过索引(下标)的方式来设置和获取数组中元素的值
10 *
11 *
12 * 数组如何定义:
13 * var 变量名=[];字面量的方式来定义数组
14 * 数组定义的方式两种(三种)
15 * var 变量=[];字面量方式定义数组
16 * var 变量=new Array();构造函数定义数组
17 * var 变量=new Array(数字);数字代表的是数组的元素的个数
18 * 数组的长度:就是数组的元素的个数
19 *
20 * JS中数组中所有元素的值都可以直接输出(其他语言中数组的元素的值都是要通过循环遍历一个一个的显示,js中也可以这样)
21 *
22 *
23 *
24 * 注意:JS中数组的长度是可变的
25 * 数组的元素如果直接输出,那么每个元素(每个值)都是由逗号隔开
26 *
27 *
28 * 数组中索引是0开始的,到元素的个数(数组的长度)减1
29 *
30 *
31 * */
32 //构造函数定义数组
33 var arr=new Array();
34 console.log(arr);//Array[0]
35
36 var arr=new Array(5);//该数组中可以存储5个值
37 console.log(arr);//Array[5] // length: 5
38
39 //字面量的方式定义数组
40 var arr=[10,20,30,40,50];//数组的长度为5,有5个数组元素
41 console.log(arr);//[10, 20, 30, 40, 50]
42
43 //字面量的方式初始化变量
44 var num=10;
45 var str="";
46 var arr=[];
47
48
49 //数组中的数组元素想要获取,通过索引
50 //取值叫获取,赋值叫设置
51 var arr=[10,20,30,50,60];
52 var num=arr[3];
53 console.log(num);//50 这种方式叫做设置
54
55 var arr=[10,20,30,50,60];
56 console.log(arr[3]);//50 这种方式叫做获取
57
58
59
60 //一些练习
61 var arr=[10,20,30,40,50];
62 arr[5]=100;
63 console.log(arr.length);//6
64 for(var i=0;i<5;i++){
65 console.log(arr[i]);
66 }//10 20 30 40 50 100
67
68
69
70 var arr=new Array(1);
71 arr[0]=10;
72 arr[1]=30;
73 console.log(arr.length); //2
74
75
76 //验证一下是不是可以一次性存储很多种类型
77 var arr=["你好,背景",45,null,undefined];
78 console.log(arr);//["你好,背景", 45, null, undefined]
79
80 //数组的长度:数组名.length
81 //数组元素获取:数组名[索引]
82 var arr=[1,2,3,4,5];
83 for(var i=0;i<arr.length;i++){
84 console.log(arr[i]);//1 2 3 4 5
85 }
86 </script>
1 <script>
2 //1.求数组中的和,平均值,最大值,最小值
3 //第一种方法
4 var arr=[10,20,30,40,50];
5 var sum=0;//求和
6 var avg=0;//平均值
7 var min=Number.MAX_VALUE;//假设是最小的值,里面存储的值最小的
8 var max=Number.MIN_VALUE;//假设是最大的值,里面存储的值最大的
9 for(var i=0;i<arr.length;i++){
10 sum+=arr[i];
11 if(max<arr[i]){//求最大值
12 max=arr[i];
13 }
14 //为什么不用else if ,因为有相等的情况
15 if(min>arr[i]){//求最小值
16 min=arr[i];
17 }
18 }
19 console.log("最大的值是"+max+",最小的值是"+min+",平均值是"+sum/arr.length+",和为"+sum);//最大的值是50,最小的值是10,平均值是30,和为150
20
21
22 //第二中方法
23 var arr=[10,20,30,40,50];
24 var sum=0;//求和
25 var avg=0;//平均值
26 var max=arr[0];
27 var min=arr[0];
28 for(var i=0;i<arr.length;i++){
29 sum+=arr[i];
30 if(max<arr[i]){//求最大值
31 max=arr[i];
32 }
33 //为什么不用else if ,因为有相等的情况
34 if(min>arr[i]){//求最小值
35 min=arr[i];
36 }
37 }
38 console.log("最大的值是"+max+",最小的值是"+min+",平均值是"+sum/arr.length+",和为"+sum);//最大的值是50,最小的值是10,平均值是30,和为150
39
40
41 //2.将数组的每个字符串元素用”|”竖线的方式隔开,并输出
42 //第一种方法,最简单的方法,不建议初学者使用
43 var userName=["同志1","同志2","同志3","同志4"];
44 console.log(userName.join("|"));//同志1|同志2|同志3|同志4
45
46 //第二种方法
47 var userName=["同志1","同志2","同志3","同志4"];
48 var str="";//用来存储最终的字符串
49 for(var i=0;i<userName.length;i++){
50 str+=userName[i]+"|";
51 }
52 console.log(str);//同志1|同志2|同志3|同志4|
53 //第二种方法有点不符合要求,现在稍微修改一下
54 //修改后的方案
55 var userName=["同志1","同志2","同志3","同志4"];
56 var str="";//用来存储最终的字符串
57 for(var i=0;i<userName.length-1;i++){
58 str+=userName[i]+"|";
59 }
60 console.log(str+userName[userName.length-1]);//同志1|同志2|同志3|同志4
61
62 //3.去掉数组中的0,产生新数组。
63 var nums=[10,0,50,4,0,2,0,1,0];
64 var newArr=[];//新数组用来存储不是0的数字
65 for(var i=0;i<nums.length;i++){
66 if(nums[i]!=0){
67 newArr[newArr.length]=nums[i];
68 }
69 }
70 console.log(newArr);//[10, 50, 4, 2, 1]
71
72 //联系一下.length的用法
73 var arr=[];
74 console.log(arr.length);// 0
75 arr[arr.length]=100;
76 console.log(arr.length);// 1
77
78 //4.实现反转数组
79 //第一种方法,比较简单
80 var num=[10,11,12,13,14];
81 for(var i=num.length-1;i>=0;i--){
82 console.log(num[i]);//14 13 12 11 10
83 }
84 //第二种方法,借助第三方变量
85 var num=[10,11,12,13,14];
86 for(var i=0;i<num.length/2;i++){
87 var temp=num[i];
88 num[i]=num[num.length-1-i];
89 num[num.length-1-i]=temp;
90 }
91 console.log(num);//[14, 13, 12, 11, 10]
92
93 //第三种方法,也是借助第三方变量
94 var i= 0;
95 var arr=[10,11,12,13,14];
96 var arrNew=[];
97 for(i=0;i<arr.length;i++){
98 arrNew[i]=arr[arr.length-1-i];
99 }
100 console.log(arrNew);//[14, 13, 12, 11, 10]
101
102
103 //5.根据输入班级人数依次输入每个人成绩,求总成绩和平均值,及最终输入完毕后显示出每个学生的成绩
104 var pers=parseInt(prompt("请输入你们班的总人数:"));
105 var scores=[];//存储每个人的成绩
106 var sum=0;//存储总和
107 for(var i=0;i<pers;i++){
108 scores[scores.length]=parseInt(prompt("请您输入第"+(i+1)+"个同学的英语成绩"));
109 sum+=scores[i];
110 }
111 for(var i=0;i<scores.length;i++){
112 console.log("第"+(i+1)+"个学生的成绩是"+scores[i]);
113 }
114 console.log("总成绩是"+sum+",平均成绩是"+sum/scores.length);
115
116
117 //6.随即生成10个1-100内的非重复数字放入数组中。
118 var arr=[];//存储随机数的数组
119 while(true){
120 var num=parseInt(Math.random()*100+1);//1-100之间的随机数
121 if(arr.indexOf(num)==-1){//判断数组中有没有这个数字
122 arr[arr.length]=num;//把随机数存储到数组中
123 }
124 if(arr.length==10){//随机产生10个数
125 break;
126 }
127 }
128 console.log(arr);
129
130 //练习.indexOf()方法
131 var arr=[10,9,8,7];
132 var result=arr.indexOf(100);
133 console.log(result);//-1
134 var result=arr.indexOf(7);
135 console.log(result);//3 如果存在会显示其下标位置
136
137
138
139 //7.求一个工资数组中,员工的最高工资、最低工资、平均工资
140 var employee=[1000,5000,48611,82,100,55211,2566];
141 var sum=0;
142 var avg=0;
143 var max=employee[0];
144 var min=employee[0];
145 for(var i=0;i<employee.length;i++){
146 sum+=employee[i];//求和
147 if(max<employee[i]){//求最大值
148 max=employee[i];
149 }
150 if(min>employee[i]){//求最小值
151 min=employee[i];
152 }
153 }
154 console.log("员工的最高工资是"+max+",最低工资是"+min+",平均值是"+sum/employee.length);//员工的最高工资是55211,最低工资是82,平均值是16081.42857142857
155
156
157 //8两个数组{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把这两个数组去除重复项合并成一个。
158 var txts1=["a","b","c","d","e"];
159 var txts2=["c","d","e","f","g","h"];
160 for(var i=0;i<txts1.length;i++){
161 if(txts2.indexOf(txts1[i])==-1){
162 txts2[txts2.length]=txts1[i];
163 }
164 }
165 console.log(txts2);//["c", "d", "e", "f", "g", "h", "a", "b"]
166 </script>
判断一个正整数是几位数
1 <script>
2 //提示用户输入整数:正整数
3 var num=parseInt(prompt("请您输入一个正整数:"));
4 if(num){
5 var i=1;//默认是一位数
6 for(;num>=10;i++){
7 num=num/10;
8 }
9 console.log("这个数字是"+i+"位数");
10 }else if(num==0){
11 console.log("是一位数")
12 }else{
13 console.log("您输入有误");
14 }
15 </script>