#4 코딩테스트 [.findIndex, +, .filter, set]

2023. 10. 25. 23:28·⚡ 코딩테스트 ⚡/JavaScript

1. .findIndex()

조건을 만족하는 배열의 첫 번째 요소 인덱스
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex

Array.prototype.findIndex() - JavaScript | MDN

findIndex() 메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환합니다. 만족하는 요소가 없으면 -1을 반환합니다.

developer.mozilla.org

const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber));
// Expected output: 3

 

2. +

문자와 불린 값을 숫자로

let str = "123";
let num = +str; 

123

let bool = true;
let num = +bool;

1

* 코드의 가독성을 해칠 수 있으므로 명시적 변환을 하는 것이 좋다

let str = "123";
let numFromString = Number(str); // 문자열 "123"을 숫자 123으로 변환

let bool = true;
let numFromBool = Number(bool); // 불리언 true를 숫자 1로 변환

 

3. .filter()

조건에 맞는 배열의 요소만 얕은 복사 할 때 사용
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

Array.prototype.filter() - JavaScript | MDN

Array 인스턴스의 filter() 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성하고, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 합니다.

developer.mozilla.org

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter((word) => word.length > 6);

console.log(result);

// Expected output: Array ["exuberant", "destruction", "present"]

 

4. new Set

문자열/배열 중복 제거

const str = "aabbcc";
const uniqueStr = [...new Set(str)].join('');
console.log(uniqueStr); 

abc
const arr = [1, 2, 2, 3, 4, 4, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr);

[1, 2, 3, 4, 5]

 

'⚡ 코딩테스트 ⚡/JavaScript' 카테고리의 다른 글
  • #6 코딩테스트 [룩업 테이블, 정규표현식, 각 자릿수 더하기]
  • #5 코딩테스트 [깊은 복사, .splice, break, for...of, 대/소문자 판별(ASKII)]
  • #3 코딩테스트 [.map, .reduce, .RegExp, .toString(=String), .parseInt(=parseFloat)]
  • #2 코딩테스트 [.replace, .replaceAll, .includes, .reverce, **]
Yeonhub
Yeonhub
✨ https://github.com/yeonhub 📧 lsy3237@gmail.com
  • Yeonhub
    비 전공자의 Be developer
    Yeonhub
  • 전체
    오늘
    어제
    • 전체보기 (169)
      • 🔍 Tech 🔍 (19)
        • Front-End (11)
        • Back-End (4)
        • AI (1)
        • Server (1)
        • Etc (2)
      • 💡 원티드 프리온보딩 챌린지 💡 (14)
        • PRE-ONBOARDING_AI (11월) (1)
        • PRE-ONBOARDING_FE (2월) (2)
        • PRE-ONBOARDING_FE (1월) (2)
        • PRE-ONBOARDING_FE (12월) (9)
      • 🔥 부트캠프-웹 개발 🔥 (118)
        • HTML5 (7)
        • CSS3 (21)
        • JavaScript (27)
        • JavaScript_advanced (9)
        • React (24)
        • Next (1)
        • MYSql (5)
        • Node (5)
        • 오늘하날(개인프로젝트) (12)
        • 이젠제주투어(팀프로젝트) (7)
      • 💻 CS 💻 (1)
        • 알고리즘 (1)
      • ⚡ 코딩테스트 ⚡ (11)
        • JavaScript (11)
      • 📚 Books 📚 (6)
        • 클린 아키텍처 (2)
        • 인사이드 자바스크립트 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    expo fcm
    react native analytics
    bottom sheet
    node crontab
    node fcm
    javascript fcm
    react native admob
    react native bottom sheet
    node.js fcm
    node cron
    expo admob
    php node
    expo node fcm
    라스콘
    expo 지도
    rn admob
    expo deep linking
    rn bottom sheet
    expo 길찾기
    프론트엔드 테스트코드
    expo google map
    react vite
    expo map
    라스콘4
    expo fcm push
    Node
    python node
    컴파운드 컴포넌트 패턴
    react native firebase analytics
    react native expo fcm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Yeonhub
#4 코딩테스트 [.findIndex, +, .filter, set]
상단으로

티스토리툴바