[JS] CDT 로 배우는 Javascript 기능과 기술들 [3.0]

김현수·2023년 10월 12일
0

cdt

목록 보기
3/51


📰 Coding Test 에서 익히는 javscript 기능과 기술등


MAP 기능

  • set(key, value)
// 새로운 키-값 쌍을 추가
const map = new Map();
map.set('name', 'Alice');
  • get(key)
// 특정 키로 지정된 값 반환
const name = map.get('name'); // Alice
  • has(key)
// Map 객체가 특정 키를 가지고 있는지 여부를 반환
console.log(map.has('name')); // true
console.log(map.has('age')); // false
  • delete(key)
// Map 객체에서 특정 키의 항목을 삭제
map.delete('name');
  • clear()
// Map 객체의 모든 항목을 제거
map.clear();
  • size()
// Map 객체의 키-값 쌍의 개수를 반환
console.log(map.size()); // 1
  • keys()
// Map 객체의 모든 키를 반환하는 새로운 Iterator 객체를 반환
for (const key of map.keys()) {
	console.log(key);
}
  • values()
// Map 객체의 모든 값들을 반환하는 새로운 Iterator 객체를 반환
for (const value of map.values()) {
	console.log(value);
}
  • entries()
// Map 객체의 모든 키-값 쌍들을 반환하는 새로운 Iterator 객체를 반환
for (const [key, value] of map.entries()) {
  console.log(key, value);
}
  • forEach(callbackFn[, thisArg])
// Map 객체의 forEach 메서드는 키-값 쌍 각각에 대하여 제공된 함수를 호출
map.forEach((value, key) => {
  console.log(key, value);
});

  • 최빈값 구하기

function solution(array) {
    let m = new Map();
    for (let n of array) m.set(n, (m.get(n) || 0) + 1);
    
    console.log(m)
    
    m = [...m].sort((a, b) => b[1] - a[1]);
    
    return m.length === 1 || m[0][1] > m[1][1] ? m[0][0] : -1;
}

Iterator (반복자) 기능

  • 정의
컬렉션의 요소(예: 배열, 문자열 또는 맵) 를 
순차적으로 탐색하는 메커니즘을 제공하는 
JavaScript(및 기타 프로그래밍 언어) 의 개체

Iterator 에는 일련의 요소에서 위치를 
추적하는 기능이 포함되어 있어 각 요소를 차례로 처리
  • 사용법
@ 요소 액세스
반복자를 사용하면 컬렉션의 요소에 하나씩 액세스 가능

@ 추적 위치
일련의 요소 내에서 현재 위치를 추적

@ 인덱스 필요 없음
인덱스 위치를 사용할 필요가 없음 
이는 연결된 목록이나 트리와 같이 데이터 구조에서 
인덱싱을 사용하지 않는 경우에 유용 가능

@ 균일한 인터페이스
배열, 맵, 세트 등과 같은 다양한 유형의 
데이터 컬렉션을 탐색하기 위한 균일한 인터페이스를 제공

> next() 라는 메서드 사용 가능
  두 가지 속성이 있는 객체를 반환

  값: 반복의 현재 항목을 나타냅니다.
  done: 데이터 구조의 마지막 항목에 도달한 경우 
        true를 나타내는 부울

for ... of 반복문

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}
profile
일단 한다

0개의 댓글