# 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
```