1에서 10까지 출력하기
for(let i=1;i<11;i++) {
if(i==3) {
console.log("Hello, world! ", i);
} else if(i==4) {
continue;
} else if(i==7) {
console.log("Hello, world! ", i);
} else {
console.log(i);
}
}
- 위의 코드를 더 깔끔하게 개선한 코드는 이 게시글의 1편에서는 아래와 같이 끝났었다.
const caseMap = {
3: "Hello World, 3!",
4: "",
7: "Bye, World!"
}
function printGreetingMessage(caseNumber) {
if(caseMap[caseNumber]===undefined) {
console.log(caseNumber);
} else {
console.log(caseMap[caseNumber]);
}
}
for(let i=1;i<11;i++) {
printGreetingMessage(i);
}
- 뭔가 아쉬움이 남은채로 끝났었지만 우연히 더 좋은 방법을 알게되어 다시 한번 포스팅한다.
const caseMap = {
3: "Hello World, 3!",
4: "",
7: "Bye, World!"
}
function printGreetingMessage(caseNumber) {
caseMap[caseNumber] ??= caseNumber;
console.log(caseMap[caseNumber]);
}
for(let i=1;i<11;i++) {
printGreetingMessage(i);
}
- 이런식으로 하면
caseMap[caseNumber]
값이 없다면 caseNumber
값으로 초기화 해준다.
- 코드를 간략히 만들다 보니 아래처럼 만들수도 있었다.
for
문에서 일부러 다시 console.log()
문을 사용한 이유는 printGreetingMessage()
함수가 값도 설정하고 출력도 동시에 하길래 한가지 임무만 부여해 주려고 나눠봤는데 뭐가 맞는진 솔직히 잘 모른다.
- 역할을 확실히 하기 위해
printGreetingMessage()
함수를 getGreetingMessage()
함수로 바꾼 후 그 값을 외부에서 console.log()
함수를 이용해 출력해 주었다.
const caseMap = {
3: "Hello World, 3!",
4: "",
7: "Bye, World!"
}
function getGreetingMessage(caseNumber) {
return caseMap[caseNumber] ??= caseNumber;
}
for(let i=1;i<11;i++) {
console.log(getGreetingMessage(i));
}
1
2
Hello World, 3!
Hello World!
5
6
Bye, World!
8
9
10
- 지금 글을 쓰면서 보니까 이렇게 한게 훨씬 깔끔해 보인다.