혼공자바스크립트

[혼공스] 3주차

곰부해 2025. 1. 26. 22:23

 

 

CH04 반복문

학습목표

  • 배열
  • 파괴적 처리와 비파괴적 처리
  • for in 반복문, for of 반복문, for 반복문, while 반복문

4-1 배열

배열은 여러 자료를 묶어서 활용할 수 있는 특수한 자료 구조입니다.

문자열 예시

const str = '안녕하세요';
console.log(str[2]); // 하
console.log(str[str.length - 1]); // 요

배열 만들기

  • 대괄호 [..]를 사용해 생성하고, 내부의 값을 쉼표 ,로 구분합니다.
  • 배열 내부에 들어 있는 값을 "요소"라고 합니다.

배열 요소에 접근

  • 접근 방법: 배열[인덱스]
  • 인덱스(Index)는 요소의 순서를 나타내며, 0부터 시작합니다.

배열 요소 개수 확인

  • 배열의 요소 개수를 확인하려면 .length 속성을 사용합니다.

예시

const fruits = ['배', '사과', '키위', '바나나'];
console.log(fruits.length); // 4
console.log(fruits[fruits.length - 1]); // 바나나 (배열의 마지막 요소)

배열 뒷부분에 요소 추가하기

-push() 메서드 사용

const fruits = ['배', '사과']; fruits.push('키위'); console.log(fruits); // ['배', '사과', '키위']

-인덱스를 사용하여 추가 배열의 길이를 이용해 마지막 위치에 요소를 추가할 수 있습니다.

const fruits = ['배', '사과']; fruits[fruits.length] = '바나나'; console.log(fruits); // ['배', '사과', '바나나']

배열 요소 제거하기

  1. 인덱스를 기반으로 제거
    • splice(인덱스, 제거할 요소 개수) 메서드를 사용합니다.
    const fruits = ['배', '사과', '키위'];
    fruits.splice(1, 1); // 1번 인덱스 요소 제거
    console.log(fruits); // ['배', '키위']
    
  2. 값으로 요소 제거
    • indexOf()로 값의 위치를 찾은 뒤, splice()로 제거합니다.
    const fruits = ['배', '사과', '키위'];
    const index = fruits.indexOf('사과');
    if (index !== -1) {
        fruits.splice(index, 1);
    }
    console.log(fruits); // ['배', '키위']
    
  3. 특정 값을 가진 요소 모두 제거하기
    • 반복문이나 filter() 메서드를 사용합니다.
    const items = ['사과', '배', '귤', '귤'];
    const filteredItems = items.filter(item => item !== '귤');
    console.log(filteredItems); // ['사과', '배']
    

배열의 특정 위치에 요소 추가하기

  • splice(인덱스, 0, 요소)를 사용하면 요소를 추가할 수 있습니다.
const fruits = ['배', '바나나'];
fruits.splice(1, 0, '사과'); // 1번 인덱스에 '사과' 추가
console.log(fruits); // ['배', '사과', '바나나']

4-2 반복문

for in 반복문

  • 배열이나 객체의 속성을 하나씩 반복할 때 사용합니다.
  • 반복 변수에는 배열의 인덱스가 들어갑니다.
const fruits = ['배', '사과', '바나나'];
for (const index in fruits) {
    console.log(index, fruits[index]);
}

for of 반복문

  • 배열이나 반복 가능한 객체의 을 하나씩 반복합니다.
const fruits = ['배', '사과', '바나나'];
for (const fruit of fruits) {
    console.log(fruit);
}

for 반복문

  • 특정 횟수만큼 반복할 때 사용하는 일반적인 반복문입니다.
for (let i = 0; i < 5; i++) {
    console.log(i);
}

while 반복문

  • 조건식이 참인 동안 반복 실행됩니다.
let i = 0;
while (i < 5) {
    console.log(i);
    i++;
}

break 키워드

  • 반복문을 즉시 종료합니다.
for (let i = 0; i < 5; i++) {
    if (i === 3) break;
    console.log(i);
}

continue 키워드

  • 현재 반복을 건너뛰고, 다음 반복을 진행합니다.
for (let i = 0; i < 5; i++) {
    if (i === 3) continue;
    console.log(i);
}

기본 숙제

비파괴적 처리와 파괴적 처리의 의미와 장단점 설명

비파괴적 처리

  • 의미: 원본 데이터를 변경하지 않고 새로운 데이터를 생성하여 작업을 수행합니다.
  • 예시:
    const array = [1, 2, 3];
    const newArray = array.map(num => num * 2); // [2, 4, 6]
    console.log(array); // [1, 2, 3]
    
     
    • 원본 데이터가 유지되어 데이터 무결성을 보장합니다.
    • 새로운 데이터를 생성하므로 메모리를 더 많이 사용할 수 있습니다.

파괴적 처리

  • 의미: 원본 데이터를 직접 변경하여 작업을 수행합니다.
  • 예시:
    const array = [1, 2, 3];
    array.push(4); // [1, 2, 3, 4]
    console.log(array); // [1, 2, 3, 4]
    
    • 메모리를 절약할 수 있습니다.
    • 원본 데이터가 변경되어 예기치 않은 버그가 발생할 수 있습니다.

추가 숙제

p.173 확인문제 3번 풀기 및 풀이 과정 설명

  1. 비파괴적 처리: strA가 보존됩니다.
  2. 파괴적 처리: arrayB가 변경됩니다.
  3. 비파괴적 처리: arrayC가 보존됩니다.
  4. 비파괴적 처리: strD가 보존됩니다.

 

 

'혼공자바스크립트' 카테고리의 다른 글

[혼공스] 6주차  (0) 2025.02.23
[혼공스] 5주차  (0) 2025.02.16
[혼공스] 4주차  (0) 2025.02.09
[혼공스] 2주차  (0) 2025.01.19
[혼공스] 1주차  (0) 2025.01.11