#명령형과 선언형

  • 명령형

    • for 문이나 while 문 등을 이용하여 어떻게 처리를 해야하는지에 대한 방법
    • ex) 반복문을 사용하여 두배의 결과값을 results 안에 넣어라
    function double (arr) {
      let results = [];
      for (let i = 0; i < arr.length; i++){
        results.push(arr[i] * 2)
      } 
      return results
    }
    
  • 선언형

    • 무엇을 처리하는지에 대한 방법
    • 기본적으로 함수, 명령어에 대한 이해가 있으면 기대한 값이 어떤식으로 나올 지 추상화가 되어있음
    • 메서드 안쪽으로 추상화 되어있는 부분은 직접 상태 변경을 하지 않고
    • 높은 가독성을 가짐
    • ex) arr 의 요소의 두배의 결과값을 가진 배열을 리턴해라
    function doubleNumb (arr) {
      return arr.map(num => num * 2)
    }
    

#선언형 메소드

const arr = [1,5,9,10,12]

  • forEach

    function print (arr) {
        arr.forEach(num => console.log(num))
    }
      
    print(arr)
    // 1
    // 5
    // 9
    // 10
    // 12
    
  • map

    function double (arr) {
      return arr.map(num => num * 2)
    }
    
    double(arr) // [2,10,18,20,24]
    
  • filter

    function odd (arr) {
      return arr.filter(num => num % 2)
    }
    odd(arr) // [1,5,9]
    
  • reduce

    function total (arr) {
      return arr.reduce((prev,curr) => prev+ curr, 0)
    }
    total(arr) // 37
    
  • some

    function isBiggerThanFive(arr) {
      return arr.some(num => num > 5)
    }
    
    // 하나의 결과만 True 로 나오게 되도 반복문을 중단한다.
    // [1,5,9,10,12] 일 경우 9에서 true 결과로 나오기 때문에 10, 12는 체크를 안하게된다
    isBiggerThanFive(arr) // true
    
  • every

    function isPositive(arr) {
      return arr.every(num => num > 0)
    }
    
    // 하나의 결과만 False 로 나오게 되도 반복문을 중단한다.
    // [1,5,9,10,12] 일 경우 전부 조건문을 통과하기 때문에 true로 나오게 되고
    // 만약 중간에 음수가 있게 되면 false가 return 된다
    isPositive(arr) // true