"get_find" 함수를 작성하세요.
문자와 문자열이 주어졌을때,
"get_find" 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다.
Notes:
문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
indexOf 함수를 사용하지 마세요.
const output = get_find('a', 'I am a hacker')
console.log(output) // --> 2
.charAt()
syntax
strName.charAt(i) // i 는 index
charAt 은 스트링에 쓸 수 있는 메소드이다.
위와 같은 문법으로 쓸 경우 i 인덱스 값에 해당하는 '글자'를 뽑아준다.
.includes()
syntax
str.includes(searchString[, position])
includes 메소드는 해당 스트링 내에 그 글자가 있는지 찾아보고,
Boolean 값을 리턴한다. (true / false)
사용 예시
'Blue Whale'.includes('blue') // returns false
중요한 점은 includes 는 글자의 uppercase, lowercase 구분을 한다는 것이다.
내가 처음 적은 코드
function get_find(a, str) {
let result = -1; // result 정의
if(false) { //만약에 문자열에 없으면
return result; // result를 리턴 (-1)
} else {
for (let i = 0; i < str.length; i++){ // for문을 돌릴것 i 값 길게
if (str.charAt(i) === a) { // i 는 a(특정 글자) 가 일치하면
result = str.charAt(i); // 결과에 그 애를 임명 .
break;
}
} return result;
}
}
get_find('h', 'I am a hacker');
문제 로직 풀때 고민해야할점
charAt() method
는 string 안에서 길이와 인덱스로 뽑을 수 있다는 점 기억하자!Solution
function get_find(char, str) {
let result = -1; // result 정의 ( -1)
for (let i = 0; i < str.length; i++){ // for 문으로 모든 글자 확인
if (str.charAt(i) === char) { // 뽑아온 캐릭터가 그 글자랑 일치하는가?
result = i; // 일치하면, 결과에 그 애를 임명 .
break; // 더이상 for 문을 돌 필요 없고 나간다.
}
}
return result;
}
get_find('h', 'I am a hacker');
// 위의 if 문은 글자를 비교한거고
// 밑의 result = i 는 숫자 인덱스를 갖다 넣었다는점. 어차피 인덱스가 필요한거기 때문에.
주의할 점
→ 혼자서 다시 풀어봤는데 break 위치가 헷갈렸다. if 문 안에다가 써줄것!
function find_longest_word (arr) {
let longest = "";
for (let i = 0; i < arr.length; i++) {
if (arr[i].length > arr[i++].length) {
longest = arr[i];
} else {
longest = arr[i++];
}
}
return longest;
}
find_longest_word(["PHP", "Exercises", "Backend"]);