# JS 綜合練習 V1 ###### tags: `程式導師` `JavaScript` `題目` ## 練習一:印出一到九 請分別用 for loop 以及 while 迴圈,印出 1~9。 預期輸出: 1 2 3 4 5 6 7 8 9 ```javascript= //用 for loop ,印出 1~9 for (var i=1; i<10; i++){ console.log(i) } //用 while loop ,印出 1~9 var i = 1; while(i<10){ console.log(i) i++ } ``` ## 練習二:寫一個能夠印出 1~n 的函式 請寫一個函式叫做 print,接收一個是數字的參數 n,並且印出 1~n。 print(1) 預期輸出: 1 print(3) 預期輸出: 1 2 3 print(9) 預期輸出: 1 2 3 4 5 6 7 8 9 ```javascript= const print=(n) => { for (i=1; i<=n; i++) { console.log(i) } } print(1) print(3) print(9) ``` ## 練習三:寫一個能夠印出 n 個 * 的函式 寫一個函式 star,接收一個參數 n,並印出 n 個 * (禁止使用內建函式 repeat) star(1) 預期輸出:* star(5) 預期輸出:***** star(10) 預期輸出:********** ```javascript= //寫法1:用陣列再轉成字串 const star=(n) => { arr = [] for (i=1; i<=n; i++) { arr.push('*') } console.log(arr.join('')) } star(1) star(5) star(10) //寫法2:字串能用陣列概念,全以字串的方式處理 const star=(n) => { var str = "" for (i=1; i<=n; i++) { str+="*" } console.log(str) } star(1) //* star(5) //***** star(10) //********** ``` ## 練習四:寫一個能回傳 n 個 * 的函式 請寫出一個叫做 star 的 function 並且接受一個參數 n,能回傳 n 個 *。 star(1) 會回傳 * star(5) 會回傳 ***** 所以 console.log(star(5)) 的預期輸出是:***** ```javascript= //寫法1:以陣列轉字串 const star=(n) => { arr = [] for (i=1; i<=n; i++) { arr.push('*') } return(arr.join('')) } console.log(star(1)) console.log(star(5)) console.log(star(10)) //寫法2:字串能用陣列概念,全以字串方式處理 const star=(n) => { var str = "" for (i=1; i<=n; i++) { str+="*" } return(str) } console.log(star(1)) console.log(star(5)) console.log(star(10)) ``` ## 練習五:判斷大小寫 請寫一個叫做 isUpperCase 的 functuon,並且接收一個字串,回傳這個字串的第一個字母是否為大寫。 isUpperCase("abcd") 正確回傳值:false isUpperCase("Abcd") 正確回傳值:true isUpperCase("ABCD") 正確回傳值:true isUpperCase("aBCD") 正確回傳值:false ```javascript= //練習五:判斷大小寫 //寫一個叫做 isUpperCase 的 functuon,並且接收一個字串,回傳這個字串的第一個字母是否為大寫。 const isUpperCase=(str) => { var asciiCode = str[0].charCodeAt(); console.log(asciiCode) if(asciiCode >= 97) { return('false'); } else { return('true'); } } console.log(isUpperCase("abcd")) console.log(isUpperCase("Abcd")) console.log(isUpperCase("ABCD")) console.log(isUpperCase("aBCD")) ``` ## 練習六:回傳第一個大寫字母以及它的 index 請寫一個 function position,接收一個字串並回傳這個字串裡面的第一個大寫字母跟它的 index,若沒有則回傳 -1。 position("abcd") 正確回傳值:-1 position("AbcD") 正確回傳值:A 0 position("abCD") 正確回傳值:C 2 ```javascript= const checkUppercase=(str) => { var sum = 0; for (var i=0; i<str.length; i++){ var asciiCode = str[i].charCodeAt(); if (asciiCode < 97){ sum+=1 return(str[i] + " " + i) } else { sum+=0 } } if (sum === 0) { return("-1") } } console.log(checkUppercase("abcd")) console.log(checkUppercase("AbcD")) console.log(checkUppercase("abCD")) ``` ## 練習七:回傳陣列裡面所有小於 n 的數的數量 請寫出一個函式 findSmallCount,接收一個陣列跟一個數字 n,回傳有多少個數小於 n。 findSmallCount([1, 2, 3], 2) 預期回傳值:1 findSmallCount([1, 2, 3, 4, 5], 0) 預期回傳值:0 findSmallCount([1, 2, 3, 4], 100) 預期回傳值:4 ```javascript= const findSmallCount=(arr, n) => { var calculator = 0; for (var i=0; i<arr.length; i++){ if(arr[i] < n){ calculator+=1 } } return(calculator) } console.log(findSmallCount([1, 2, 3], 2)) //1 console.log(findSmallCount([1, 2, 3, 4, 5], 0)) //0 console.log(findSmallCount([1, 2, 3, 4], 100)) //4 ``` ## 練習八:回傳陣列裡面所有小於 n 的數的總和 請寫一個函式 findSmallerTotal,接收一個陣列以及數字 n,回傳陣列裡面所有小於 n 的數的總和。 findSmallerTotal([1, 2, 3], 3) 正確回傳值:3 findSmallerTotal([1, 2, 3], 1) 正確回傳值:0 findSmallerTotal([3, 2, 5, 8, 7], 999) 正確回傳值:25 findSmallerTotal([3, 2, 5, 8, 7], 0) 正確回傳值:0 ```javascript= const findSmallCount=(arr, n) => { var calculator = 0; for (var i=0; i<arr.length; i++){ if(arr[i] < n){ calculator+=1 } } return(calculator) } console.log(findSmallCount([1, 2, 3], 2)) //1 console.log(findSmallCount([1, 2, 3, 4, 5], 0)) //0 console.log(findSmallCount([1, 2, 3, 4], 100)) //4 ``` ## 練習九:回傳陣列裡面所有小於 n 的數 請寫一個函式 finaAllSmall,接收一個陣列跟一個數字 n,回傳一個裡面有所有小於 n 的數的陣列(需按照原陣列順序)。 findAllSmall([1, 2, 3], 10) 正確回傳值:[1, 2, 3] findAllSmall([1, 2, 3], 2) 正確回傳值:[1] findAllSmall([1, 3, 5, 4, 2], 4) 正確回傳值:[1, 3, 2] ```javascript= const findAllSmall=(arr, n) => { var newArr = []; for (var i=0; i<arr.length; i++){ if(arr[i] < n){ newArr.push(arr[i]) } } return(newArr) } console.log(findAllSmall([1, 2, 3], 10)) //[1, 2, 3] console.log(findAllSmall([1, 2, 3], 2)) //[1] console.log(findAllSmall([1, 3, 5, 4, 2], 4)) //[1, 3, 2] ``` ## 練習十:回傳陣列總和 請寫一個 function sum,接收一個陣列並回傳陣列中數字的總和。 sum([1, 2, 3]) 預期回傳值:6 sum([-1, 1, 2, -2, 3, -3]) 預期回傳值:0 ```javascript= const sum=(arr) => { var total = 0; for (var i=0; i<arr.length; i++){ total+=arr[i] } return(total) } console.log(sum([1, 2, 3])) //6 console.log(sum([-1, 1, 2, -2, 3, -3])) //0 ```