[JavaScript 심화] 순회 정리

2025. 11. 10. 19:21·React/JavaScript 심화
순회란 배열/객체에 저장된 여러 값들 순서대로 하나씩 접근하는 것

1. 배열 순회


1-1. 인덱스 `for`루프

const arr = [1, 2, 3];

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

const arr2 = [4, 5, 6, 7, 8];
for (let i2 = 0; i2 < arr2.length; i2++) {
  console.log(arr2[i2]);
}
  • 장점: 인덱스(`i`)를 직접 다룰 수 있어 범위, 간격, 역순 등 세밀 제어 가능
  • 주의: 루프 도중 `arr.length`가 변하지 않도록 주의! (배열 수정 X)

1-2. `for...of` (값 중심 순회)

for (const item of arr) {
  console.log(item);
}
  • 값을 바로 꺼내 쓰는 가장 간단한 방식
  • 배열, 문자열, `Map`/`Set`같은 iterable에 사용
  • 인덱스가 필요하면 `arr.entries()`를 함께 사용
for (const [i, v] of arr.entries()) {
  console.log(i, v);
}
콜백 스타일을 원하면 `arr.forEach(v => console.log(v))`도 동일 목적에 자주 씀

2. 객체 순회

const person = { name: "도서", age: 28, hobby: "게임" };

2-1. `Object.keys` (key 배열)

const keys = Object.keys(person); // ["name", "age", "hobby"]
console.log(keys);

for (let i = 0; i < keys.length; i++) {
  console.log(keys[i]);
}

for (const key of keys) {
  console.log(key);
}

for (const key of keys) {
  const value = person[key];
  console.log(key, value);
}
  • 자기 자신의 키만 배열로 반환

2-2. `Object.values` (value 배열)

const values = Object.values(person); // ["도서", 28, "게임"]
console.log(values);

for (const value of values) {
  console.log(value);
}

2-3. `Object.entries` (key-value) - 실무에서 편리할 듯?

for (const [key, value] of Object.entries(person)) {
  console.log(key, value);
}
  • 키와 값을 동시에 구조분해로 받기 좋아서 가장 깔끔

2-4. `for...in` (객체의 키 순회)

for (const key in person) {
  const value = person[key];
  console.log(key, value);
}
  • 주의할 점 : 상속된 프로퍼티까지 순회할 수 있음
    -> 보통은 `Object.hasOwn`같은 체크를 함께 사용
for (const key in person) {
  if (Object.hasOwn(person, key)) {
    console.log(key, person[key]);
  }
}
  • 배열에는 사용 비권장
  • 인덱스 순서가 보장되지 않으며, 의도치 않은 속성까지 순회될 수 있음
    -> 배열은 `for`, `for...of`, `forEach`를 사용 권장!

그럼 언제 무엇을 씀??

 

대상 추천 구문 이유

대상 추천 구문 이유
배열 값만 필요 `for...of` 가장 간단하고 안전
배열 인덱스/세밀 제어 `for` 범위·간격·역순 등 제어 쉬움
객체 키·값 모두 `Object.entries + for...of` key/value 동시 접근이 깔끔
객체 키만/값만 `Object.keys / Object.values` 필요한 것만 추출
객체 전통 순회 `for...in (+ Object.hasOwn)` 상속 프로퍼티 주의 필요

'React > JavaScript 심화' 카테고리의 다른 글

[JavaScript 심화] 배열 메서드 (요소 순회 & 탐색)  (0) 2025.11.10
[JavaScript 심화] 배열 메서드 (요소 조작)  (0) 2025.11.10
[JavaScript 심화] Spread & Rest  (0) 2025.11.03
[JavaScript 심화] 구조 분해 할당  (0) 2025.11.03
[JavaScript 심화] 단락 평가  (0) 2025.11.03
'React/JavaScript 심화' 카테고리의 다른 글
  • [JavaScript 심화] 배열 메서드 (요소 순회 & 탐색)
  • [JavaScript 심화] 배열 메서드 (요소 조작)
  • [JavaScript 심화] Spread & Rest
  • [JavaScript 심화] 구조 분해 할당
이도서
이도서
  • 이도서
    도서의 코딩노트
    이도서
  • 전체
    오늘
    어제
    • 분류 전체보기 (249)
      • Today I Learned (79)
        • 2024 (78)
      • Swift (25)
        • Swift 문법 정리 (19)
        • RxSwift (5)
      • Swift Study (12)
        • Playground (2)
        • Storyboard (9)
        • UIKit (1)
      • Flutter (27)
        • Dart 언어 (16)
        • Flutter Study (11)
      • React (37)
        • HTML & CSS (8)
        • JavaScript 기본 (12)
        • JavaScript 심화 (14)
        • Node.js (2)
        • React (1)
      • Git (3)
      • 코딩테스트 (60)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • 개발 공부 공유 링크
  • 인기 글

  • 태그

    function
    코딩테스트 level.1
    ios
    코딩테스트Level.1
    javascript
    React
    함수
    Swift
    html
    내일배움캠프
    Flutter
    iOS앱개발
    DART
    코딩테스트
    Til
    javascript 기본
    객체지향
    storyboard
    CLASS
    ios앱개발자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
이도서
[JavaScript 심화] 순회 정리
상단으로

티스토리툴바