반응형
Map
Key(키)와 Value(값)을 쌍으로 이루어진 컬렉션입니다.
// Map 생성 및 선언
const map = new Map();
const map = new Map([
['Apple', 1200],
['Banan', 1500],
['Orange', 2500]
]);
// Map 값 추가
map.set('Apple', 1200);
map.set('Banana', 1500);
map.set('Orange', 2500);
// Map 값 삭제
map.delete('Apple')
// Map 값 가져오기
map.get('Apple');
// Map 값 존재하는지 확인
map.has('Apple'); // true or false
// Map 크기
map.size;
// Map 모든 값 삭제
map.clear();
// Map 반복
map.forEach((val, key) => {
console.log(key + "의 값: " + val);
});
// entries 반복문
for (let[key, value] of map.entries()) {
console.log(key + ": " +value);
}
// Map key 값 가져오기
for (let key of map.keys()) {
console.log("과일: " + key);
}
// Map value 값 가져오기
for (const value of map.values()) {
console.log("가격: " + value);
}
JS 객체와 Map의 차이점
1. 키(Key) 타입:
객체의 Key는 문자열 혹은 심볼(Symbol)만 사용할 수 있습니다. 만약 다른 데이터 타입을 사용하면 자동으로 문자열로 변환됩니다. 예를 들어, 객체 속성에 정수를 Key로 사용하면 정수가 가문자열로 변환된어 저장됩니다.
Map의 Key는 모든 데이터 타입이 키로 사용 가능합니다.
2. 키(Key) 순서:
객체의 속성은 특별한 순서를 가지고 있지 않아, 순서를 보장하지 않습니다. Map은 요소의 삽입 순서를 보장합니다.
3. 이터레이션:
객체는 iterable하지 않습니다. 객체 자체가 Symbol.iterator 메서드를 갖고 있지 않기 때문입니다. 따라서 객체를 직접 순회하려면 `for...in` 루프를 사용하거나 `Object.keys()`, `Object.values()`, `Object.entries()`와 같은 메서드를 사용하여 속성을 순회해야합니다.
Map은 iterable합니다. Map은 Symbol.iterator 메서드를 내장하고 있기 때문에 `for...of` 루프, `forEach`, `entries()`, `keys()`, `values()`와 같은 메서드를 사용하여 각 항목을 순회할 수 있습니다.
Set
Set의 대표적인 특징은 중복되지 않는 값들의 집합입니다. 순서가 정해져있지 않기 때문에 인덱스로 요소에 접근할 수가 없습니다.
// Set 생성 및 선언
const set = new Set();
const set = new Set(["a", "b", "c"]); //iterable한 인수인 경우
const set = new Set('HelloWorld');
// Set 값 추가
const set = new Set();
set.add("a");
set.add("a");
set.add("a");
set.add("b");
console.log(set.size); // 2 출력
// Set 값 삭제 및 비우기
set.delete('b');
set.clear();
// Set 반복문
for (const val of set) {
console.log(val);
}
// Set 값 존재하는지 확인
set.has("a");
// Set 크기
set.size;
반응형
'Front-End > JS' 카테고리의 다른 글
JS addEventListener 사용법 ( + capturing, bubbling ) (0) | 2023.04.27 |
---|---|
JS 정규식 (0) | 2023.04.26 |
JS 자바스크립트 반복문(Loop) / for in, for of 차이점 (0) | 2023.04.26 |
JS 내장 객체: String, Date, Math, Array, 정규식 객체 등 (0) | 2023.04.26 |
JS 자바스크립트 배열(Array) + 배열을 다루는 내장 API들 소개 (0) | 2023.04.26 |