오늘도 프로그래머스를 풀었다.
배열에 약한거 같아 배열문제를 찾아서 풀어봤다.
문제는
길이가 5이상인 배열을 줄꺼고 거기서 음수의 인덱스를 반환하라는 거였다.
일단 음수를 정의하는 것 부터 또 헤맸다. 이놈의 숫자 숫자 숫자.
처음에 한 생각은 배열이 num_list라고 하면
num_list.find((v)=>v===-1*v)로 하면 음수를 찾을 수 있을 거 같았다.
근데 undefind가 나왔다.
아놔... find 메서드를 잘 못썻다고 생각하진 않았으니까 당연히 괄호안의 조건이 잘못된거라 생각하고 js에서 음수표현을 검색했다.
역시... 표기가 잘못된거였다.
a<0 0보다 작을 것. 맞아 그게 음수였지..
다시 수식을 작성해봤다.
배열.find를 써서 음수인 것을 찾고, indexOf를 써서 인덱스를 반환하면 되겠다 라고 생각했다.
그래서
배열.find((v)=> v<0).indexOf(v)를 했는데 indexOf이 움직이지 않았다.
indexOf(v)에서 v는 정해지지 않았다고 한다.
num_list.find((v)=> v <0) ? num_list.indexOf((v)=>v<0) : -1;
라고 해도 v가 정해지지 않았다고 했다.
설마 find를 잘못썻나란 생각에 find 검색하니 findIndex가 나왔다. 바꿔서 작성해 봤다.
num_list.findIndex((v)=> v <0 )
잘 되네??
find와 findIndex 자첵 없으면 -1을 반환하는 성질을 가지고 있었다.
세상에 좋아라. 그럼 괜히 삼항연산 쓸 필요도 없네.
그래도 내가 처음 만들었던 식도 작동하는지 궁금해서 만들어 봤다.
var answer = num_list.find((v)=> v <0) ? num_list.findIndex((v)=>v<0) : -1;
작동 잘됌 굿굿
아주 맘에 들었다.
for문을 쓰지 않고 만들수 있어서 더더욱 좋았다.
'자기개발 > TIL' 카테고리의 다른 글
js 조건문을 연습하는 줄 알았는데 새로운 매소드를 알았다. (0) | 2023.07.06 |
---|---|
리스트 연습 (0) | 2023.07.05 |
자바로 구현한 좋아요 많은 순서대로 반환 회고하기 (0) | 2023.06.28 |
영어 면접을 봤습니다. (0) | 2023.06.27 |
프로그래머스 js 최대값 만들기(2) (0) | 2023.06.26 |