TIL 5. JS - For 반복문과 배열 순회

문승준·2021년 8월 6일
1

JavaScript

목록 보기
2/8
post-thumbnail

반복문

  • 동일한 동작을 조건을 만족할 때 까지 (원하는 만큼) 반복해서 수행
  • JS에는 for, while, do..while 등이 있다.

1. 반복문의 작동방식

- 기본형식

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

초기화식

  • 변수 선언자를 써주어야한다
  • 변수명은 보통 index를 의미하는 i로 선언 (혹은 step)
  • index가 증가할 경우 보통 숫자는 0으로 시작

조건식

  • index의 범위를 설정
  • index가 증가할 경우 특정 숫자 미만 혹은 이하로 설정
  • true일 경우 반복문 계속 실행 / false일 경우 반복문 종료

증감식

  • 1씩 증가할 경우 ++ / 1씩 감소할 경우 --
  • i++i=i+1, i+=1, ++1과 같은 표현
  • ex) i--, i-=1, i-=2

- 작동방식

초기화식 -> 조건식(true) -> 반복문 -> 증감식 -> 조건식(true)
-> 반복문 -> 증감식 -> 조건식(false) -> 종료

  • 조건식은 true or false 여부만 확인한다 -> counting 용도

- for 반복문 예시

// * 1부터 10까지의 합 구하기
let result = 0; // 합계를 나타낼 변수 먼저 선언
for(let i=0; i <= 10 ; i++) {
  result += i // result = result + i
}
console.log(result) // 55


// * 주사위 두 눈의 합이 6이 되는 경우의 수
for (let i = 1; i < 7; i++) {
  for (let j = 1; j < 7; j++) {
    if (i + j === 6) {
      console.log(`[${i}, ${j}]`)}
  }
} // [1, 5] [2, 4] [3, 3] [4, 2] [5, 1]

2. 반복문과 배열

- 빈 배열에 반복문을 활용해 요소 추가하기

// * 1~10 중 짝수만 모아 배열 만들기 *
let result = [];
for (let i = 2; i < 11; i+=2) {
  result.push(i)
}
console.log(result) // [2, 4, 6, 8, 10]


// * 9~1 중 홀수만 큰 숫자부터 모아 배열 만들기
let result = [];
for (i = 9; i > 0; i-=2){
  result.push(i)
}
console.log(result) // [9, 7, 5, 3, 1]

- 배열 요소를 순회하기

// * 배열의 숫자 요소들의 합계 구하기
let myArr = [2, 3, 4, 5, 6];
let total = 0;
for (let i = 0; i < myArr.length; i++) {
  total = total + myArr[i]; // 인덱스로 접근
} 
console.log(total) // 20


// * 요소를 순회하며 1씩 더하여 각각 출력하기
let myNum = [10, 20, 30, 40, 50]
let result = []
for (let i = 0; i < myNum.length; i++) {
  console.log(myNum[i] + 1)
} // 11 21 31 41 51

- 문자열을 배열로 변환하기 (split 활용)

let str = 'hello'
let strArray = [];
for(let i = 0; i < str.length; i++) {
  strArray = str.split('') // split -> 문자열을 구분자로 나눠서 배열로
}
console.log(strArray) // ["h", "e", "l", "l", "o"]

- 다차원 배열 순회해서 요소 제거하기 (splice 활용)

// * 다차원 배열에서 특정 요소 제거하기 *
let basket = [['onion','pickle'],['pickle','bread','jam'],['mango','pickle','apple']];
 
for (i = 0; i < basket.length; i++) {
  for (j = 0; j < basket[i].length; j++) {
    if (basket[i][j] === 'pickle') {
      basket[i].splice(j,1)
    }
  }
}
console.log(basket) // [["onion"], ["bread", "jam"], ["mango", "apple"]]


// * 새로운 배열로 만들기 (push로 새로 채우기) *
let basket = [['onion','pickle'],['pickle','bread','jam'],['mango','pickle','apple']];

let result = []
for (i = 0; i < basket.length; i++) {
  for (j = 0; j < basket[i].length; j++) {
    if (basket[i][j] !== 'pickle') {
      result.push(basket[i][j])
    }
  }
}
console.log(result) // ["onion", "bread", "jam", "mango", "apple"]


참조 목록

profile
개발자가 될 팔자

0개의 댓글