티스토리 뷰
Map
- 객체와 동일하게 Key / Value 형식으로 되어있다.
- 객체와 차이점으로 Map은 Key가 정렬된 순서로 저장되고, Key에는 어떤 데이터타입(유형)도 다 들어올 수 있다.
- 기능 : 검색, 삭제, 제거 여부 확인
Map의 속성과 반복문(iterator)
- new Map() : Map생성
- map.set(key, value) : key와 value 저장
- map.get(key) : key에 해당하는 값을 반환한다, key 가 존재하지 않으면 undefined를 반환.
- map.has(key) : key 가 존재하면 true , 존재하지 않으면 false 를 반환.
- map.delete(key) : key 에 해당하는 값을 삭제.
- map.clear() :Map의 모든 요소 제거.
- map.size : 요소의 개수와 key가 존재하면 true , 존재하지 않으면 false 를 반환.
const myMap = new Map();
myMap.set('key','value'); // key, value 저장
myMap.get('key'); // key 값을 가져오는 방법
const myMap = new Map();
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
console.log(myMap.keys()); //{키}만 객체형태로 출력
console.log(myMap.values()); //{값}만 객체형태로 출력
console.log(myMap.entries()); // [키,값]이 쌍으로 배열형태로 출력
for(const key of myMap.keys()){
console.log(key);
}
for(const value of myMap.values()){
console.log(value);
}
for(const entry of myMap.entries()){
console.log(entry);
}
console.log(myMap.size()); // map의 사이즈(길이)
console.log(myMap.has("two")); // key 기반 검색(map의 사이즈와 조건에 맞는 키의 유무를 논리형으로 출력)
Set
- 고유한 값을 저장하는 자료구조
- 키를 저장하지않고 값만 저장하며 중복을 허용하지 않는다.
- 기능 : 값 추가, 검색, 값 삭제, 모든 값 제거, 존재 여부 확인
Set의 속성과 반복문
- new Set() : Set 생성
- set .add(value) : value 저장
- set .has(value) : value가 존재하면 true , 존재하지 않으면 false를 반환.
- set .size : 요소의 개수와 value가 존재하면 true , 존재하지 않으면 false를 반환(중복값은 하나의 값으로 카운트된다.)
const mySey = new Set();
mySey.add('value1');
mySey.add('value2');
mySey.add('value2');
mySey.add('value4');
mySey.add('value5');
console.log(mySey.size); // mySet의 저장된 값 개수 확인
console.log(mySey.has('value1')); //mySey에 저장된 값 유무 확인
console.log(mySey.has('value2'));
console.log(mySey.has('value3'));
for(const value of mySey.values()){
console.log(value);
}
'TIL > Javascript' 카테고리의 다른 글
[데이터 타입의 종류 및 메모리] (0) | 2024.01.08 |
---|---|
[자바스크립트 JavaScript] 솔트(Sort) 배열 요소 정렬 (0) | 2024.01.05 |
[자바스크립트 JavaScript] 구조분해할당, 단축속성명, 전개구문 (0) | 2024.01.03 |
[자바스크립트 JavaScript] 조건부 실행, 객체와 배열 메서드 (0) | 2024.01.02 |
[자바스크립트 JavaScript] 문자열함수, 삼항 연산자 (0) | 2023.12.29 |