20240112

귤금·2024년 1월 12일

Node.js 4기 TIL

목록 보기
11/86

Today?

팀과제 작성

view.html

promise.all을 사용하여 API를 한 fetch에서 두 개 넘기는 걸 실제로 구현함. 여러 fetch 요청을 병렬로 실행할 수 있으며, 모든 요청이 완료된 후에 결과를 처리...
json 형식으로 가져온 데이터를 가공하여 html 문서 안에 넣어주는 작업을 했다.
youtube 주소 관련 이슈가 있었는데 (열람할 수 없는 유튜브 key값이 객체배열에 들어가 있음) 이건 해결하려면 youtube API를 연동해야 해서 고민...


오늘 배운 것

코드카타

1) 콜라츠 추측

//내가 짠 코드
let solution = n => {
    let array = [n];
    let answer = 0;
    let i = 0;
    do {
        if(n === 1){
            break;
        }
        if(array[i]%2 === 0){
            array[i] /= 2;
        } else {
            array[i] = array[i]*3 + 1
        }
        if(array[i] === 1 || i===500){
            if(i===500){
                answer = -1;
            } else {
                answer = array.length;
            }
            break;
        }
        i++;
        array.push(array[i-1]);
    } while(true)
    
    return  answer;
}

//다른 사람 코드
function collatz(num) {
    var answer = 0;
    while(num !=1 && answer !=500){
        num%2==0 ? num = num/2 : num = num*3 +1;
    answer++;
  }
    return num == 1 ? answer : -1;
}

왜 내가 비슷하게 했을 땐 안 나온 거지... while에 i<=500 조건 넣었는데도 계속 뺑뺑 돌았다. 숫자만 가지고 하는 게 도저히 안 돼서 배열 만들어서 길이 리턴함 ㅠㅠ


2) String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

// 내가 짠 코드
let solution = seoul => {
    let index = seoul.findIndex((str)=>str==="Kim")
    return "김서방은 "+index+"에 있다";
}

//다른 사람 코드
function findKim(seoul){
  var idx = seoul.indexOf('Kim');

  return "김서방은 " + idx + "에 있다";
}

나는 findIndex를 사용했고, 다른 사람은 indexOf를 사용하였다.

JavaScript에서 배열의 특정 값의 위치를 찾는 데 사용되는 indexOf()와 findIndex() 함수!!

검색 기준
indexOf(): 이 함수는 배열에서 주어진 요소를 찾고, 그 요소의 첫 번째 인덱스를 반환함. 검색은 엄격한 동등성(===)을 사용하여 수행됨.
findIndex(): 이 함수는 주어진 테스트 함수를 만족하는 배열의 첫 번째 요소의 인덱스를 반환함... 사용자 정의 검색 조건을 제공할 수 있어 더 유연하다.

사용 방법
indexOf(): array.indexOf(element) 형태로 사용합니다. element는 찾고자 하는 요소
findIndex(): array.findIndex(callback) 형태로 사용. 테스트를 통과하는 첫 번째 요소의 인덱스를 반환

리턴 값
두 함수 모두 찾고자 하는 요소가 없을 경우 -1을 반환

적용 가능한 경우
indexOf(): 주로 기본 데이터 타입(문자열, 숫자 등)의 검색에 사용
findIndex(): 객체와 같은 복잡한 데이터 구조를 포함한 배열에서 조건에 맞는 요소를 찾을 때 유용

indexOf는 배열에서 단순하게 특정 값을 찾을 때 사용하고, findIndex는 좀 더 복잡한 조건이나 객체 배열에서 특정 조건을 만족하는 요소의 위치를 찾을 때 사용한다. 이 경우 'Kim'이라는 단어만 찾으면 되었으므로 indexOf를 사용하는 게 훨씬 빠르다구 함... findIndex()는 배열의 각 요소에 대해 콜백 함수를 호출해서 함수 호출 자체가 추가적인 오버헤드를 발생시킬 수 있다.

0개의 댓글