입출력 예시
seoul : ["Jane", "Kim"]
return : "김서방은 1에 있다"
function solution(seoul) {
var KimInd; // "Kim" 배열의 인덱스값 저장하는 변수.
for (var seoulInd in seoul) { // seoulInd 에는 seoul 배열의 index가 할당된다.
var seoulName = seoul[seoulInd]; // seoulInd 값을 이용하여 seoul의 각 index의 value(값) 가져와 seoulName 변수에 할당한다.
if (seoulName == "Kim") { // 배열의 value(값)중에서 "Kim" 동일한 문자열이 있을경우 함수 블록을 실행한다.
KimInd = seoulInd // "Kim" 동일한 문자열의 index를 변수 "KimInd"에 저장한다.
}
}
var answer = '김서방은 ' + KimInd + '에 있다';
return answer;
}
String
0: "k"
1: "o"
2: "n"
3: "g"
String
0 : "Jane"
1 : "Kim"
seoul.indexOf("Kim"); // 인자를 "Kim" 넘겨주고 반환값을 해당 index인 1을 반환한다.
function solution(seoul) {
var index = seoul.indexOf("Kim");
var answer = '김서방은 ' + index + '에 있다';
return answer;
}
코드 리뷰
1. 저는 처음에는 seoul이라는 배열을 각 for문을 돌려서 해당 value(값)을 하나하나 다 비교해서 "Kim"의 index를 찾으려고 했습니다.
2. 두번째 코드에서는 String 객체의 메서드를 사용하여 해당 코드 결과는 같지만 소스코드 내용이 훨씬 간결하게 바뀌었다.
3. 첫번째 소스코드와 두번째 소스코드중 두번째가 처음 딱 봤을때 아!! 이코드는 지금 어떠한 역활을하고 어떠한 내용을 실행하고 있는가를 한눈에 보인다.
4. 그래서 앞으로 코드를 작성할때는 소스코드의 변수를 남발하지말고 내장객체의 메서드를 잘이용하여 간결하게 표현하는 생각을 중점적으로 할려고 합니다.