🗃️javascript/프로그래머스

숫자 찾기(Lv.0)[map()의 다음함수와 연결. map()다음 if문 추가는 '||' 고려]

하얀성 2023. 1. 5. 23:19
<문제 설명>

 

정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.


제한사항
  • 0 < num < 1,000,000
  • 0 ≤ k < 10
  • num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.

입출력 예numkresult
29183 1 3
232443 4 4
123456 7 -1

입출력 예 설명

입출력 예 #1

  • 29183에서 1은 3번째에 있습니다.

입출력 예 #2

  • 232443에서 4는 4번째에 처음 등장합니다.

입출력 예 #3

  • 123456에 7은 없으므로 -1을 return 합니다.

 


<제출 답안>

 

function solution(num, k) {
    let result = num.toString().split("").map((x,i) => Number(x)==k,0).indexOf(true)
    if(result != -1){
        result++;
    }
    return result
}

 

ㅡㅡㅡㅡ> 수정보완

1.

i 굳이 쓸필요 x

2.

배열.indexOf( 값 혹은 변수)는 위치를 출력해줌.

3.

filter()는 조건에 맞는 요소를 아무 변화없이 추출해줄 뿐임. 

 

map에 if문을 쓰고 싶을 때가 오면 아래와 같이 || 를 많이 써서 추가해주더라.

그러니 앞으로는 비슷한 상황에서 우선 ||을 떠올려보자.

function solution(num, k) {
    return num.toString().split("").map((el) => Number(el)).indexOf(k) + 1 || -1
}