IT/JavaScript & TypeScript

[JavaScript] 코딩테스트에 유용한 자바스크립트 문법

땅일단 2024. 9. 25. 00:13

파이썬에 이어 작성하는 자바스크립트 문법,,
이번에도 필자가 몰랐던 부분 위주로 정리함.
(계속 추가됨)
 

 

[Python] 코딩테스트에서 알아놓으면 유용한 파이썬 문법

※ 파이썬 복습 겸 필자가 몰랐던 것 위주로 정리 람다 함수(lambda x, y: x + y)(1,2) # 3(lambda li: li[1])([1,2,3]) # 2  리스트 관련elements = ["a", "b", "c"]# 리스트 요소의 인덱스elements.index("요소명")# 리스트

doringri.tistory.com

 

리스트 관련

const elements = ["a", "b", "c"];

// 리스트 특정 위치에 요소 추가 및 삭제
// elements.splice(인덱스, 제거할 요소의 개수, 추가할 요소들...);
elements.splice(1, 1, "d", "e");    // [ 'a', 'd', 'e', 'c' ]


// 배열 슬라이스
elements.slice(2);    // ['c']
elements.slice(-1);    // ['c'], 뒤에서 첫번째 요소까지
elements.slice(0, 2);    // ['a', 'b'], 0에서부터 1까지의 인덱스


// 배열의 맨 앞에 항목 추가
elements.unshift("a0");


// 특정 요소의 인덱스
elements.indexOf("b");


// 특정 요소의 인덱스(뒤에서부터 찾음)
elements.lastIndexOf("b");


// 배열을 뒤집음 (왜인지 모르겠으나 코테에서 많이 사용하는 것 같다...)
elements.reverse();


// 포함 여부
elements.includes("b")

 

const nums = [1, 2, 3, 4];

// 모든 요소가 조건에 맞는지 확인
nums.every(num => num % 2);    // false


// 하나라도 조건에 맞는지 확인
nums.some(num => num % 2);    // true


// 함수를 적용한 새로운 배열 만듦 (즉, 배열의 길이는 원본과 같음)
nums.map(num => num + 1);    // [2, 3, 4, 5]


// 조건에 맞는 요소들로만 새 배열을 만듦 (배열의 길이가 달라질 수 있음)
nums.filter(num => num % 2 == 1);    // [1, 3]

 
모든 메소드들은 index에도 접근 가능함.
 

isEveryNum1 = nums.every((num, index) => {
    console.log(index);
    return num === 1;
})

console.log(isEveryNum1);    // false

 

출력

이를 통해 every는 배열을 순회하다가 조건에 맞지 않는 값이 있으면 바로 루프를 종료시킨다는 것을 알 수 있음.


Math 관련

Math.ceil(3.14);    // 4 (올림)
Math.floor(3.14);    // 3 (내림)
Math.round(3.14);    // 3 (반올림)

const arr = [1,2,3];
Math.min(...arr);    // 1 (최솟값)

 

 

객체 관련

const myObj = {"a": 1, "b": 2, "c", 3}

// for in 문
for (property in myObj) {
    console.log(`${property}: ${myObj[property]}`); // "a: 1" "b: 2" "c: 3"
}

 

 

Map 관련

그동안 객체를 해시 테이블 용도로 많이 사용했는데 Map을 사용했을 경우 더 빠른 속도로 작업을 처리합니다.

Object.keys(객체명) 이나 for in문을 사용해야 하는 객체와 달리 내부 요소를 for문으로 반복할 수 있습니다.

또한 Map의 키는 유일하게 존재합니다.

const myMap = new Map();

myMap.set("a", 1);
myMap.set("a", 2);
myMap.set("b", 3);

console.log(myMap.get("a"));    // 2

console.log(myMap.has("b"));    // true
myMap.delete("a");

console.log(myMap.size);    // 1

 

 

문자열 관련

 

const str = "..#..#";

// forEach는 배열에만 사용가능하므로 변환 ( Array.from(str) 도 가능 )
[...str].forEach((s, i) => console.log(s));

for (let s of str) {
    console.log(s);
}