TIL 15 - Javascript Replit 01

eoskandlv·2021년 7월 11일
0

repl.it

목록 보기
1/2
post-thumbnail

📖 for문

for 문은 조건식이 거짓으로 판별될 때까지 코드 블록을 반복 실행한다. 가장 일반적으로 사용되는 반복문이다.

 for (초기화식; 조건식; 증감식) {
  조건식이 참인 경우 반복 실행될 문;
} 

🧐 Assignment

findSmallestElement 함수를 구현해 주세요.

  • findSmallestElementarr 인자는 숫자 값으로만 이루어진 배열입니다.
  • arr 의 값들 중 가장 작은 값을 리턴 해주세요.
  • 만일 arr 가 비어있으면 0을 리턴 해주세요.
  • 예를 들어, 다음과 같은 배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 합니다. [20, 200, 23, 1, 3, 9]

✍️ 구현한 함수

function findSmallestElement(arr) {

  if(arr.length === 0){
    return 0;
  }
  
  let smallestNumber = arr[0];
  
  for(let i = 0; i < arr.length; i++){
    if(smallNumber > arr[i]){
      smallestNumber = arr[i]
    }
  }
  return smallestNumber
}
findSmallestElement([20, 200, 23, 1, 3, 9]);

for문에 index 0인 20을 넣어보자 if 만약에 (20 > 20)이 true라면 smallestNumber = arr[i]가 된다. 하지만 false가 되어서 다음으로 넘어가게 되고 이러한 성질을 반복하면 (20>1)이 true라면 smallestNumber = arr[3]이 된다. 즉 1이 된다. 1이 된 smallestNumber로 반복해보면 결국 답은 1이라는게 나온다.

📖 배열 조작하기

🧐 Assignment

divideArrayInHalf 함수를 다음과 같이 구현해주세요.

  • divideArrayInHalf 함수는 array를 인자로 받습니다. 이 array는 숫자 값으로 만 구성되어 있으며 총 5개의 요소(element)들로 구성되어 있습니다.
  • divideArrayInHalf 함수는 인자로 들어온 array 로 부터 새롭게 구성된 배열 result 을 리턴합니다.
  • array 요소들 중 10과 같거나 작은 값의 요소들은 result의 맨 앞으로, 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴 해주세요.
  • 재구성이 되는 순서는 array의 맨 뒤 요소부터 맨 앞 요소까지 입니다. 즉, 배열의 뒷 요소 부터 재구성을 진행해주세요.

✍️ 구현한 함수

function divideArrayInHalf(array) {
    let result = [];
    for(let i = array.length; i>=0; i--){
      if(array[i] <= 10){
        result.unshift(array[i]);
      }else if(array[i] > 10){
        result.push(array[i]);
      }
    }
    return result;
}

배열의 뒷 요소부터 역순으로 재구성을 진행하기 위해 array.lenght부터 1 씩 감소하게 구현했고 10보다 작거나 같은 수는 앞 쪽에 큰 수는 뒤쪽에 요소를 추가하기 위해 unshift(배열 맨 앞에 요소수 추가), push(배열 맨 뒤에 요소 추가를 사용해 구현했다.

❗️마치며

이론을 알아도 막상 코드를 구현해보니 전혀 이해가 되지를 않았고 구현하는 시간만 두시간 넘게 걸렸다. 저게 최선의 구현 방법인지도 모르겠지만 그래도 구동되는건 신기하다. 코드를 보면 이해가 가지만 그 전에 스스로 코드 구현하는게 매우 어렵다. 🥲 for문은 백번 넘게 봐야.. 좀 이해가 갈 듯 하다.

profile
코린이 성장일기

0개의 댓글