Object와 Map은 다르다

Rxoding·2024년 8월 22일

key, value로 이루어져있어서 형태가 같기때문에 같다고 오해하고 있었다.
하지만 다른점이 있다. 여러가지 다른점이 있지만 간단하게 몇가지만 알아보고 내가 실제로 사용한거에서 어떤게 달랐는지 중점적으로 작성한다.

주요 차이점

  • key필드 : Object 즉 객체에서 key는 문자열이나 symbol 같은 단순한 유형이여야 한다(숫자를 넣어도 자동으로 문자열로 반환한다). 하지만 map에서는 어떠한 데이터 유형도 가능하다
  • 요소순서 : Map에서는 원래 요소들의 순서가 보존되지만 Object는 그렇지 않다.
  • 상속관계 : Map은 Object의 instance지만 Object는 당연히 Map의 instance가 아니다.

객체생성방법

  • Object
const object = {}
const object = {name:"tom", sex:"male"}
const object = new Object(); // Empty Object
const object = new Object; // same reuslt
  • Map
const map = new Map([["name","tom"],["sex","male"]]) 


// Map(2) = {"name"=>"tom", "sex"=>"male"}

요소에 접근하기

  • Object
object.name;
object["name"]
  • Map
map.get("name")//tom

key값 접근

  • Object
"name" in object //true
  • Map
map.has("name") //true
  • (참고) 배열에서 확인하는법
arr = ['a','b','c']

arr.inculdes('a') //true

새로운 요소 추가

  • Object
object["age"] = 20
object.age = 20
  • Map
map.set("age",20);

요소 제거하기

  • Object
delete object.name
  • Map
map.delete("name");

//전체 삭제하기
map.clear();

각 key,value값의 배열 만들기

  • Object
const objArrK = Object.keys(object);

const objArrV = Object.values(object);
  • Map
const mapArrK = Array.from(map.keys());

const mapArrV = Array.from(map.values());

크기 알아내기

  • Object
Object.keys(object).length;
  • Map
map.size;

참고블로그 : https://kim-born-in-mapo.tistory.com/26

profile
기호지세

0개의 댓글