[JS] For문(+for in문)

양갱장군·2020년 9월 20일
0

TIL

목록 보기
7/39

✅ for문 Syntax

let count = 1;
for (let i = 0; i < 6; i++) {    
  count = count + 1;
}
  • let i =0; i라는 변수에 0을 할당하고
  • i < 6; i가 6보다 작을 때까지
  • i++ i를 1씩 증가시킨다

✅ for 내부의 if문

function findSmallestElement(arr) {
  if (arr.length === 0) {
    return 0;
  }  
  let result = arr[0];
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < result) {
      result = arr[i];
    }
  }
 	return result ;
}
console.log(findSmallestElement([12,25,54,100,2]))

위 예문은, i가 배열의 길이만큼 반복될 동안 arr[i] 값이 result 변수에 할당된 값보다 작은지를 비교한다. 만약 작다면 result 변수에는 arr[i] 값이 새롭게 할당된다.

이러한 방식으로 arr배열의 모든 값을 비교해보고 최소 값을 찾을 수 있다.

✅ for-in문

for-in문은 ES6에서 추가된 문법으로, for문을 조금 더 단순화한 것이다.

일반적인 for문 선인시 쓰는 for(let i = 0; i < arr.length; i ++) 을 아래와 같이 간단히 표현할 수 있다.

  for (let i in arr) {
  console.log(i)
  console.log(arr[i])
}

⏩ 객체에서도 작동하는 for-in문

기존 for문과 달리 for-in문은 배열은 물론 객체에서도 작동 가능하다.

const obj = {
  name: 'melon',
  weight: 4350,
  price: 16500,
  isFresh: true
}
for (let key in obj) {
  const value = obj[key]
  console.log(key)
  console.log(value)
}

이렇게 객체를 가지고 for-in 문을 사용하면, for-in 문의 인덱스에 해당하는 변수가, 숫자가 아닌 객체의 각각의 키에 해당하는 문자열을 할당 받는다.

🙊 오늘의 삽질

  • 배열 길이만큼 반복하고 싶을 땐 i <= arr.length 가 아니라 i < arr.length 를 사용해야 한다.
  • 만약 배열의 길이가 6이면 총 6번의 반복문이 실행되어야 하는데, 만약 <= 작거나 같다는 연산자를 사용하면 i는 0부터6까지 실행되어 총 7번의 반복문을 실행하기 때문이다.

0개의 댓글