程式基礎 —— Javascript 動手做 Part1


Posted by Lindsay0214 on 2021-07-21

LV1

分別用 for loop 以及 while 迴圈,印出 1~9。
預期輸出:123456789

// for loop
for(i=1; i<=9; i++){
    console.log(i)
}

// while
let i =1
while(i<=9){
    console.log(i)
    i++
}

寫一個函式叫做 print,接收一個是數字的參數 n,並且印出 1~n。
print(1) 預期輸出:1
print(3) 預期輸出:123
print(9) 預期輸出:123456789

function print(n){
    for(let i=1; i<=n;i++){
        console.log(i)
    }
}

print(10)

寫一個函式 star,接收一個參數 n,並印出 n 個 *(禁止使用內建函式 repeat)
star(1) 預期輸出:*
star(5) 預期輸出:*****
star(10) 預期輸出:**********

function star(n) {
    let msg = ''
    for(i=1; i<= n; i++){
        msg+='*'
    }
  console.log(msg)
}
star(4)

寫出一個叫做 star 的 function 並且接受一個參數 n,能回傳 n 個 *
star(1) 會回傳 *
star(5) 會回傳 *****
所以 console.log(star(5)) 的預期輸出是:*****

function star(n){
    let msg = '';
    for(let i=1; i<=n; i++){
        msg+= '*'
    }
    return msg
}

console.log(star(7))

判斷大小寫

寫一個叫做 isUpperCase 的 functuon,並且接收一個字串,回傳這個字串的第一個字母是否為大寫。
isUpperCase("abcd") 正確回傳值:false
isUpperCase("Abcd") 正確回傳值:true
isUpperCase("ABCD") 正確回傳值:true
isUpperCase("aBCD") 正確回傳值:false

function isUpperCase(str){
    let char = str[0]
        if(char >= 'A' && char <= 'Z'){
        return true
    } else {
        return false
    }
}
console.log(isUpperCase('AAAaAacdd'))

回傳第一個大寫字母以及它的 index

寫一個 function position,接收一個字串並回傳這個字串裡面的第一個大寫字母跟它的 index,若沒有則回傳 -1。
position("abcd") 正確回傳值:-1
position("AbcD") 正確回傳值:A 0
position("abCD") 正確回傳值:C 2

function position(str){
      for(i=0; i<= str.length; i++){
            if(str[i]>='A'&& str[i]<='Z'){
                return str[i] + ' ' + i
            }
        }
        return -1
}
console.log(position())

回傳陣列裡面所有小於 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

function findSmallCount(arr, n){
    let result = 0
    for(let i=0; i<=arr.length;i++){
        if(arr[i]<n) result++
    }
    return result
}
console.log(findSmallCount([1,2,3,4],5))

回傳陣列裡面所有小於 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

function findSmallerTotal(arr, n){
    let result = 0
    for(let i=0;i<=arr.length;i++){
        if(arr[i]<n) result += arr[i]
    }
    return result
}

回傳陣列裡面所有小於 n 的數

寫一個函式 findAllSmall,接收一個陣列跟一個數字 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]

function findAllSmall(arr, n){
    let result = []
    for(let i=0; i<=arr.length; i++){
        if(arr[i]<n) result.push(arr[i])
    }
    return result
}

回傳陣列總和

寫一個 function sum,接收一個陣列並回傳陣列中數字的總和。
sum([1, 2, 3]) 預期回傳值:6
sum([-1, 1, 2, -2, 3, -3]) 預期回傳值:0

function sum(arr){
    let result = 0
    for(let i=0;i<arr.length;i++){
        result += arr[i]
    }
    return result
}

#Lindsay's note #程式導師計劃 MR05 #javascript







Related Posts

Higher Order Functions

Higher Order Functions

JS30 Day 15 筆記

JS30 Day 15 筆記

Currying

Currying


Comments