작성
·
305
0
indexOf(), lastIndexOf()를 활용한 코드 작성 문제 풀이입니다. 부족하거나 틀린점이 있다면 알려주세요!
이런식으로 하는게 맞는지 문제해결방식이 헛갈리네요...!
//출생날짜를 변수로 저장
var birth = "19971212";
//나이가 27살인가요?
var k = birth.indexOf(1997);
//출생에 제일 앞에 위치하는 년도 4자리는 앞에서부터 구해야 정확하니 indexOf를 사용하여 변수 k에 저장해준다
if(k == 0){
//년도가 인덱스 0번째로 확인된다면 원하는 년도 출생임으로 27세가 된다.
console.log("27세 입니다.");
}else{
//그렇지 않을 경우 다른 나이로 판단한다.
console.log("27세가 아닙니다.");
}
//생일이 12월인지 구하시오.
var i = birth.lastIndexOf(12, 4);
//생일은 년도보다 뒤에 있기 때문에 lastIndexOf를 사용하되 날짜와 혼동 될 수 있으므로 2번째 파라미터를 활용해 월에 해당하는 위치부터 시작하도록 설정한다.
console.log(i);
if(i == 4){
//인덱스 4번째가 월에 해당하는 위치이기 때문에 해당 위치로 확인되면 12월생임을 알 수 있다.
console.log("12월생입니다.");
}else{
//그렇지 않을 경우 다른 월로 판단한다.
console.log("12생이 아닙니다.");
}
답변 1
1
주석을 잘 작성해서 너무 멋있습니다. 지금처럼 꼭 습관을 만들기 바랍니다. 이렇게 1~2년하면 다름 사람과 차별화될 것이며 취업/이직할 때 좋은 평가를 받을 것입니다. 코드에서 느낀 것을 적어봅니다. 틀린 것은 아니니 참고하면 되겠습니다.
var k = birth.indexOf(1997);
==> var year = birth.indexOf(1997);
k는 가독성이 떨어지므로 year
if(k == 0){...}
==> if (k === 0){...} // === 3개
var i = birth.lastIndexOf(12, 4);
==> var month = birth.lastIndexOf(12, 4);
i는 가독성이 떨어지므로 month
if(i == 4){...}
==> if (k === 0){...} // === 3개
인덱스 4번째가 월에 해당하는 위치이기 때문에
==> 인덱스는 0부터 시작하므로 5번째
인덱스 값 4, 5 두자리가 월에 해당하므로
이 정도 데이터는 indexOf()나 lastIndexOf()의 차이가 없습니다. 물론 시맨틱으로는 가치가 있습니다.
var i = birth.indexOf(12, 4);