var score =prompt("請輸入分數:");switch(parseInt(score /10)){case10:case9:case8:case7:case6:
console.log("及格啦");break;default:
console.log("不及格");}
輸入日期,判斷這個日期是這一年的第幾天
var date =prompt("請輸入8位數日期:");var year =parseInt(date /10000)var month =parseInt(date /100)%100;var day = date %100;var count =0;var february =28;switch(month -1){case12:
count +=31;case11:
count +=30;case10:
count +=31;case9:
count +=30;case8:
count +=31;case7:
count +=31;case6:
count +=30;case5:
count +=31;case4:
count +=30;case3:
count +=31;case2:if(year %4==0&& year %100!=0|| year %400==0){
count +=29;}else{
count +=28;}case1:
count +=31;break}
count += day;alert("第"+ count +"天");
二、循環類
打印1000-2000之間的閏年,每行打印4個
for(var i =1000, count =0; i <2001; i++){if(i %4===0&& i %100!==0|| i %400===0){
document.write(i +" ");
count++;}// count爲計數器if(count %4===0){
document.write("<br>")}}
打印水仙花數
for(var i =100; i <1000; i++){var a = i %10;// 個位數字var b =parseInt(i /10)%10;// 十位數字var c =parseInt(i /100);// 百位數字// i === Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)// i === a ** 3 + b ** 3 + c ** 3if(i === a * a * a + b * b * b + c * c * c){
document.write(i +"<br>");}}
打印1-100之間所有的質數
for(var i =2; i <101; i++){var flag =true;//使用中間量 flag 記錄狀態for(var j =2; j < i ; j++){//代碼優化1: j < i 改爲 j <= Math.sqrt(i)if(i % j ===0){
flag =false;break;//代碼優化2}}if(flag){
console.log(i);}}
判斷某個數是否是質數
var num =prompt("請輸入一個大於1的數字:");var flag =true;//使用中間量 flag 記錄狀態for(var i =2; i < num ; i++){if(num % i ===0){
flag =false;break;}}if(flag){
document.write(num +"是質數");}else{
document.write(num +"不是質數");}
打印三角形
for(var i =0; i <10; i++){for(var j =0; j < i +1; j++){
document.write("* ");}
document.write("<br>");}
打印倒三角形
for(var i =10; i >0; i--){for(var j =0; j < i ; j++){
document.write("* ");}
document.write("<br>")}
打印等腰三角形
for(var i =0; i <10; i++){for(var j =0; j < i *2+1; j++){
document.write("* ");}
document.write("<br>")}
打印菱形
for(var i =0; i <10; i++){for(var j =0; j < i *2+1; j++){
document.write("* ");}
document.write("<br>")}for(var i =8; i >=0; i--){for(var j =0; j < i *2+1; j++){
document.write("* ");}
document.write("<br>")}
打印空心菱形
for(var i =0; i <10; i++){for(var j =0; j < i *2+1; j++){if(j ===0|| j === i *2){
document.write("* ");}else{
document.write(" ");}}
document.write("<br>")}for(var i =8; i >=0; i--){for(var j =0; j < i *2+1; j++){if(j ===0|| j === i *2){
document.write("* ");}else{
document.write(" ");}}
document.write("<br>")}
打印99乘法表
for(var i =1; i <10; i++){for(var j =1; j < i +1; j++){
document.write(j +"*"+ i +"="+ j * i +" ");}
document.write("<br>");}
三、函數類
編寫函數,計算三個數字的大小,按從小到大的順序打印
functionfun(a, b, c){var temp;if(a > b){
temp = a;
a = b;
b = temp;}if(a > c){
temp = a;
a = c;
c = temp;}if(b > c){
temp = b;
b = c;
c = temp;}
console.log("從小到大的順序是"+ a +","+ b +","+ c);}fun(11,-2,5);
functionfoo(a){returnfunction(b){returnfunction(c){returnfunction(d){
console.log(a * b * c * d);}}}}foo(1)(2)(3)(4);
編寫函數,實現點擊按鈕隨便改變頁面和按鈕背景顏色
<body id="body"><button id="btn">變換背景顏色</button>functionsetRandomColor(ele, color){var r = color ==="red"?255:parseInt(100* Math.random());var g = color ==="green"?255:parseInt(100* Math.random());var b = color ==="blue"?255:parseInt(100* Math.random());
random_color ="rgb("+ r +","+ g +","+ b +")";
ele.style.cssText ="background-color : "+ random_color;}
btn.onclick=function(){setRandomColor(body,"red");setRandomColor(btn,"green");}
functioncalculate(a, b, operator){switch(operator){case"+":return a + b;case"-":return a - b;case"*":return a * b;case"/":return a / b;}}
console.log(calculate(10,2,"/"));
編寫函數,判斷一個字符串的內容是不是純數字,返回true或false
functionfun(a){returnNumber(a)|| a ==="0"?true:false;}
編寫函數,生成4位數字的驗證碼
functiongenerateCode(){var code ="";for(var i =0; i <4; i++){
code +=parseInt(Math.random()*10)}return code;}
console.log(generateCode());
functiongeneratePassword(i){// 千位數字var a =(parseInt(i /1000)+5)%10;// 百位數字var b =(parseInt(i /100)%10+5)%10;// 十位數字var c =(parseInt(i /10)%10+5)%10;// 個位數字var d =(i %10+5)%10;var temp = a;
a = d;
d = temp;
temp = b;
b = c;
c = temp;return a *1000+ b *100+ c *10+ d;}
console.log(generatePassword(3759));
functioncalculator(n){if(n ===1|| n ===2){return1/ n;}return1/ n +calculator(n -2);}
console.log(calculator(5));
console.log(calculator(6));
在頁面輸入任意數字,點擊按鈕後計算該數字的階乘
functionfactorial(n){if(n ===1){return1;}return n *factorial(n -1);}var value =prompt("請輸入數字:");
btn.onclick=function(){
console.log(factorial(value));}
斐波那契數列(1,1,2,3,5,8···)
functionfun(i){if(i ===1|| i ===2){return1;}returnfun(i -1)+fun(i -2);}
console.log(fun(3));
輾轉相除法(求最大公約數)
functionfun(a, b){if(a % b ===0){return b;}var r = a % b;
a = b;
b = r;returnfun(a , b);}
console.log(fun(16,24));
var arr =[];var res =[];var sum =0;for(var i =1; i <31; i++){
arr.push(2* i);
sum +=2* i;if(i %5===0){
res.push(sum /5);
sum =0;}}
console.log(res);
編寫函數map(arr) 把數組中的每一位數字都增加30%,並返回一個新數組
functionmap(arr){var new_arr =[];for(var i =0; i < arr.length; i++){// Math.round 解決數組元素中存在浮點數時的計算誤差問題
new_arr.push(Math.round(arr[i]*1.3*10)/10);}return new_arr;}var arr =[1,10,100,1000,10000];
console.log(map(arr));
有一個從小到大排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中
functionsort(arr, value){if(arr[arr.length -1]<= value){
arr.push(value);}else{for(var i =0; i < arr.length ; i++){if(arr[i]> value){
arr.splice(i,0, value);break;}}}return arr;}var arr =[1,5,8,10,14];var value =+prompt("請輸入數字:");
console.log(sort(arr, value));
編寫函數norepeat(arr) 將數組的重複元素去掉,並返回新的數組
functionnorepeat(arr){for(var i =0; i < arr.length; i++){for(var j = i +1; j < arr.length; j++){if(arr[i]=== arr[j]){
arr.splice(j,1);
j--;}}}return arr;}var arr =[1,2,2,5,5,6,4,4,7,1,3,5];
console.log(norepeat(arr));
通過循環按執行順序,做一個5×5的二維數組,賦1到25的自然數,然後輸出該數組的左下半三角。試編程
var arr =[];var res =[];var new_arr =[];for(var i =1; i <26; i++){
res.push(i);if(i %5===0){
arr.push(res);
res =[];}}for(var j =0; j <5; j++){
new_arr.push(arr[j].slice(0, j +1));}
console.log(arr);
console.log(new_arr);
實現filter、every、some函數
functionfilter(arr, fn){var res_arr =[];for(var i =0; i < arr.length; i++){var res =fn(arr[i]);if(res){
res_arr.push(arr[i]);}}return res_arr;}functionevery(arr, fn){var flag =true;for(var i =0; i < arr.length; i++){if(!fn(arr[i])){
flag =false;break;}}return flag;}functionsome(arr, fn){var flag =false;for(var i =0; i < arr.length; i++){if(fn(arr[i])){
flag =true;break;}}return flag;}var arr =[1,2,3,4,5];
console.log(filter(arr,function(item){return item >3;}))
console.log(every(arr,function(item){return item >3;}))
console.log(some(arr,function(item){return item >3;}))
冒泡排序
var arr =[3,5,2,7,9,11,6];for(var k =0; k < arr.length -1; k++){// i < arr.length - 1 ==> 沒必要比較最後一個數和undefined// i < arr.length - 1 - k ==> 已經排序好的不用再比對for(var i =0; i < arr.length -1- k ; i++){if(arr[i]> arr[i +1]){var temp = arr[i];
arr[i]= arr[i +1];
arr[i +1]= temp;}}}
console.log(arr);
選擇排序
var arr =[3,5,2,7,9,11,6];for(var k =0; k < arr.length ; k++){// 假定的最小值var min = arr[k];var index = k;for(var i =1+ k ; i < arr.length ; i++){// 記錄實際最小值if(arr[i]< min){
min = arr[i];
index = i;}}// 實際最小值和假定最小值換位
arr[index]= arr[k];
arr[k]= min;}
console.log(arr);
桶排序
var arr =[3,2,5,7,10];// 建立對於最大值數量的桶,該步可省略// 承載下標的容器var bocket =[];for(var i =0; i < arr.length; i++){// 往桶裏注水
bocket[arr[i]]=1;}
arr.length =0;// 用for in可略過empty的數據for(var attr in bocket){// attr是字符串,需要轉換爲數字
arr.push(Number(attr));}
console.log(arr);
快速排序
functionquickSort(arr){// 終止條件if(arr.length ===1|| arr.length ===0){return arr;}// 找中點var mid_index =parseInt(arr.length /2);var mid_num = arr[mid_index];// 分左右var left =[];var right =[];for(var i =0; i < arr.length; i++){// 不和中比對if(i === mid_index){continue;}// 分配左右if(arr[i]> mid_num){
right.push(arr[i]);}else{
left.push(arr[i]);}}// 拼接左、中、右三者的結果(注意中點爲值,需要加中括號變成數組)returnquickSort(left).concat([mid_num],quickSort(right));}var arr =[2,5,1,3,7];
console.log(quickSort(arr));
六、字符串類
編寫函數,輸出四位數的數字字母混合驗證碼(數字+大寫字母+小寫字母)
functiongetRandomInt(min , max){return min +parseInt( Math.random()*(max - min +1));}functiongenerateCode(){var min, max;var code ="";for(var i =0; i <4; i ++){switch(getRandomInt(1,3)){case1:
min =48;
max =57;break;case2:
min =65;
max =90;break;case3:
min =97;
max =122;break;}var randomInt =getRandomInt(min , max);
code += String.fromCharCode(randomInt);}return code;}
console.log(generateCode());
functionfn(str){var obj ={};for(var i =0; i < str.length; i++){var attr = str[i];if(obj[attr]=== undefined){
obj[attr]=1;}else{
obj[attr]++;}}
console.log(obj);var string ="";for(var key in obj){
string += key;}
console.log(string);}var str ="aabccd";fn(str);
編寫函數,判斷一個字符串是否是 “可迴文字符串”,如:abccba。是:true;不是:false
// 方法1functionjudgePalindrome(str){var n =parseInt((str.length +1)/2);var flag =true;for(var i =0; i < n; i++){if(str[i]!== str[str.length - i -1]){
flag =falsebreak;}}return flag;}// 方法2functionjudgePalindrome(str){// 字符串 => 數組 => 倒序數組 => 字符串var new_str = str.split("").reverse().join("");return str === new_str;}
console.log(judgePalindrome("abccba"));
console.log(judgePalindrome("abcgcba"));
console.log(judgePalindrome("abcdba"));
編寫函數,獲得一個十六進制的隨機顏色的字符串(例如:#20cd4f)
functiongetColorNum(){var color ="#";for(var i =0; i <6; i ++){
color +=parseInt(Math.random()*15).toString(16);}return color;}
console.log(getColorNum());
functiongetTime(){var d =newDate();var res ="";
res += d.getFullYear()+"-";
res +=getDblTime(d.getMonth()+1)+"-";
res +=getDblTime(d.getDate())+" ";
res +=getDblTime(d.getHours())+"-";
res +=getDblTime(d.getMinutes())+"-";
res +=getDblTime(d.getSeconds());return res;}functiongetDblTime(num){if(num >=10){return num;}return"0"+ num;}
console.log(getTime());