자바스크립트 알고리즘 질문

const numBox = [1, 2, 3];
const charBox = ["a", "b", "c"];

let i;
let j;

for (i of numBox) {
    for (j of charBox) {
        console.log(`i : ${i}, j : ${j}`);
    }
}

이러한 중첩 반복문이 있습니다. i가 1일때 j는 “a”, “b”, “c” 이런식으로 출력이 되겠지요
i : 1, j : a
i : 1, j : b
i : 1, j : c
i : 2, j : a
i : 2, j : b
i : 2, j : c
i : 3, j : a
i : 3, j : b
i : 3, j : c
위에 처럼 말이죠 그런데 이런식으로 말고
i가 1일때 "a"가 출력되고
i가 2일때 "b"가 출력되고
i가 3일때 "c"가 출력되는
이런식으로 출력하는 방법 없을까요??

질문자분께서 올려주신 코드의 두 반복문의 위치만 바꾸어주면 해결됩니다.

for (j of charBox) {
    for (i of numBox) {
        console.log(`i : ${i}, j : ${j}`);
    }
}

이런식으로 말씀이신가요? 제가 제시한 방법이
i가 1일때 "a"가 출력되고
i가 2일때 "b"가 출력되고
i가 3일때 "c"가 출력된다고 할때
9개가 아닌 3개만 출력되게 할수 없을까요?
순서를 바꾼다 해도 9개가 출력되는건 동일합니다.

for를 사용하시는건 어떨까요?

const numBox = [1, 2, 3];
const charBox = ["a", "b", "c"];

for (let i = 0; i < numBox.length; i++) {
  for (let j = 0; j < charBox.length; j++) {
    if (i === j) {
      console.log(`i : ${numBox[i]}, j : ${charBox[j]}`);
    }
  }
}

출력이 3개만 되려면

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

처럼 반복문이 3번만 실행되도록 하시면 됩니다.

답변대로 코드를 작성했더니 제가 원하던 대로 됬습니다 감사합니다!

1개의 좋아요