JavaScript

Hash and Map

재키재키 2022. 4. 28. 23:40

1. Map

  • The Map object holds key-value pairs and remembers the original insertion order of the keys. Any value (both objects and primitive values) may be used as either a key or a value.
  • for . . . of  loop returns an array of [key, value] for each iteration

2. 관련 함수들 

  • python의 dictionary와 다른 점은 접근, 수정시에 항상 set, get 매서드를 사용하여야 한다는 점이다. 
const contacts = new Map()
contacts.set('Jessie', {phone: "213-555-1234", address: "123 N 1st Ave"})
contacts.has('Jessie') // true
contacts.get('Hilary') // undefined
contacts.set('Hilary', {phone: "617-555-4321", address: "321 S 2nd St"})
contacts.get('Jessie') // {phone: "213-555-1234", address: "123 N 1st Ave"}
contacts.delete('Raymond') // false
contacts.delete('Jessie') // true
console.log(contacts.size) // 1

 

3. 예제

: 주어진 문자열에서 가장 빈도수가 많은 단어를 찾으시오.

let str = 'BACBACCACCBDEDE'
let answer;
let sH = new Map(); // Map 객체 생성

for (let x of str) {
	if (sH.has(x)) sH.set(x, sH.get(x) + 1);
    else sH.set(x, 1);
}

let max = Number.MIN_SAFE_INTEGER;
for (let [key, val] of sH) {
	if (val > max) {
		max = val;
    answer = key;
    }
}