[JS] Set,Map,Object 자료구조

이진규·2024년 3월 26일
post-thumbnail

Set,Map

자바스크립트 E6가 나오면서 등장한 자료구조

Set

  • 중복을 허용하지 않는 데이터 집합
  • 중복을 확인하기 위해 강제적으로 자료형을 변형하지 않는다.
const mySet = new Set(); // 생성자
mySet.add(1); // 
mySet.size(); //
mySet.delete(1); //
mySet.has(1);; //
mySet.clear(); //

Map

  • Key-Value 값을 저장하는 집합
  • Key값으로 문자열과 숫자를 구분
  • map[key]는 일반 객체처럼 취급하기때문에 전용 메서드인 set,get 등을 사용
  • 빠른 검색과 삭제를 내부적으로 제공
const myMap = new Map();
myMap.set(1,"Hi"); // {1=>"Hi"}
myMap.get(1); // HI
myMap.has(1); // false
myMap.delete(1); //
myMap.size(); //
myMap.clear(); //
// Array로 변환
Array.from(myMap.keys());
Array.from(myMap.values());
Array.from(myMap);

Object

const myObj = new Object(); // let myObj = {}
"key" in myObj // false
myObj.hasOwnProperty()
delete myObj.key; // 지정된 key와 value값 삭제
const keys = Object.keys(myObj); // key값 배열로 반환
const values = Object.values(myObj); // value값 배열로 반환
const entires = Object.entries(myObj); // [key,value]쌍으로 배열로 반환
Object.keys(myObj).length // size

Object VS Map

  1. Key Type
  • Object는 string,symbols
  • map은 array,object등 어떤 것이든 가능
  1. Map은 데이터의 순서를 보존하지만 Object는 아님
  2. Map은 for of, forEach로 접근, Object는 for in으로 접근
// Map이 접근하는 방법 (key,value 따로 접근 가능)
for (const [key,value] of myMap)
myMap.forEach((key,value)=>{console.log(key,value)})
profile
웹 개발자

0개의 댓글