JS一些简单的问题
冒泡排序
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>