JavaScript 기초 TIL 2

최정민·2021년 7월 9일
0

JavaScript

목록 보기
2/9
post-thumbnail

1. for문 반복문

  • for문은 조건이 false가 될때까지 실행코드를 반복한다.

    for (반복조건) {
    // 반복조건이 맞으면 실행할 코드
    }

Ex) findSmallestElement 함수를 구현하기

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

😛 내가 구현한 함수

function findSmallestElement(arr) {
  if(arr.length === 0) return 0;  //비어있으면 0반환
  //배열 인자를 처음부터 하나씩 비교해 둘 중 작은값을
  //저장하여 배열안 인자 중 가장 작은 숫자값을 찾는다. 
  let smallestNumber = arr[0];  //처음값 저장
  //배열의 크기만큼 반복 ! 
  for(let i=0; i<arr.length; i++){  
  if(smallestNumber > arr[i]){  //if문의 조건인 작은수보다 더 작은수가 있으면  smallestNumber에 저장.
  smallestNumber = arr[i];
    }
  }
 return smallestNumber;  //smallestNumber값 반환 
}
console.log(findSmallestElement([20, 200, 23, 1, 3, 9]))

👇🏻 결과
1


2. 배열 조작하기

Ex)divideArrayInHalf 함수를 다음과 같이 구현하기

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

😛 내가 구현한 함수 1
(배열 메소드.reverse(),.unshift(),.push() 사용)
여기선 배열의 뒷요소 부터 재구성을 진행하기 위해 먼저 배열을 역순으로 바꾼 다음 진행.

function divideArrayInHalf(array) {
    let result = [];
    array=array.reverse(); //배열을 역순으로 반환해주는 함수
    for (let i=0;i<array.length;i++){
      let num=array[i];
      if (num<=10){
        result.unshift(num); //배열 맨 앞에 요소를 추가하는 메소드
      }
      else if (num>10){
        result.push(num);//배열 맨 뒤에 요소를 추가하는 메소드
      }
    }
    return result;
}
console.log(divideArrayInHalf([1, 20, 10, 5, 100]))

👇🏻 결과
[ 1, 10, 5, 100, 20 ]

😛 내가 구현한 함수 2
(배열 메소드.pop(),.unshift(),.push() 사용)
여기선 배열에서 뒷 요소부터 가져와 재구성 진행
문제 조건에 이 경우가 더 맞는 것같아서 이 방법으로도 풀어본 것 (뭐가 더 나은 코드인진 아직 모르겠다)

function divideArrayInHalf(array){
  let count=array.length;
  let result=[]
  for (let i=0;i<count;i++){
    let num=array.pop() //배열에서 맨 뒤 요소를
    //반환하고 반환된 요소는 배열에서 삭제하는 메소드
    if(num <=10) {
      result.unshift(num);}
    else {result.push(num);}
}
  return result;
 }

👇🏻 결과
[ 1, 10, 5, 100, 20 ]

profile
나 다운 것, 가장 아름다운 것

0개의 댓글