Q. 문자와 문자열이 주어졌을때, getFind 함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다. 없으면 -1 반환
function getFind(filter, sentence) {
const setArr = [...sentence];
console.log(result);
// ['I', ' ', 'a', 'm',' ', 'a', ' ', 'h', 'a', 'c', 'k', 'e', 'r']
const findIndex = setArr.findIndex(el => el === filter);
return findIndex;
}
const output = getFind('a', 'I am a dudud')
console.log(output) // --> 2
처음에는 인자를 배열로 변환하여 각각 검사해야하는 줄 알고 배열 메서드를 사용하려고 인자로 받을 sentence를 Spread Operator 연산자를 사용하여 result 새로운 배열에 담아 주었다.
findIndex()사용
findIndex() 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환합니다.
처음엔 findInex를 사용하여 구현하였는데 setArr, findIndex 두 개의 배열을 생성해주는게 불필요해보여 다른 2가지 풀이로 정리하려고한다.
다른풀이 1
search() 메서드는 정규 표현식과 객체간에 같은 것을 찾기 위한 검색을 실행한다.
function getFind(filter, sentence) {
const findIndex = sentence.search(filter);
return findIndex;
}
const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
다른풀이 2
indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.
arr.indexOf(searchElement[, fromIndex])
function getFind(filter, sentence) {
const findIndex = sentence.indexOf(filter);
return findIndex;
}
const output = getFind('a', 'I am a dudud')
console.log(output) // --> 2
[JavaScript] Runtime Stack, Queue, Eventloop (0) | 2021.12.31 |
---|---|
JS 자바스크립트 Sort, pop 가장 긴 문자열 반환해주기 (0) | 2021.11.13 |
자바스크립트 JS Scope block 지역변수 전역변수 (0) | 2021.11.06 |
[JavaScript] 인자 개수 만큼 반복문 실행 (0) | 2021.11.04 |
[JavaScript] 현재 날짜 시간 가져오기 (년, 월, 일, 시, 분, 초 구하기) 자동새로고침 setInterval() (0) | 2021.10.27 |