map, set 자료형

12839 단어 자바스크립트jsjs

▶️ 매핑을 할 수 있는 Map 자료형

var person = new Map();
person.set("name","Kim");
person.set("age",20);

console.log(person);

// 콘솔창 출력:
//  Map { 'name' => 'Kim', 'age' => 20 }
  • Map 자료형은 Object자료형과 똑같이 key, value 형태로 자료를 저장할 수 있는 자료형이다. 위처럼 만들고 자료를 저장할 수 있다.
  • 그런데 콘솔창에 출력을 해보면 Object와는 약간 다른 것을 알 수 있는데, key,value값을 등호가 아닌 화살표로 나타낸다.
  • Map 자료형은 자료를 저장하는 것이 아닌 자료의 연관성을 표현하기 위해 쓰기 때문인데, name과 Kim이 연관돼있다~라고 저장하고 싶다면 Map을 쓰면 된다.
  • 요약하자면 Map은 자료간의 연관성을 표현하기 위해 쓴다고 보면 된다.
   var person = new Map();
   person.set([1,2,3],'Kim');
   person.set('age', 20);

자료를 저장하는 것이 아닌 매핑을 하는 것이므로 자료의 이름으로 array도 사용할 수 있고 object도 사용할 수 있다.


▶️ Map을 다루는 법

// Map 자료형 만드는 방법
let person = new Map();

// Map 자료 넣기
person.set("name", 'Kim');
person.set("age", 20);
console.log(person); // 출력 : {'name' => 'Kim', 'age' => 20}

// Map 자료 꺼내는 방법
console.log(person.get("name"));// 출력 : Kim
console.log(person.get("age"));// 출력 : 20

// Map 자료 몇개인지 아는 방법
console.log(person.size);// 출력 : 2

// Map 자료 삭제하는 방법
person.delete("age");
console.log(person);// 출력 : {'name' => 'Kim'}
console.log(person.size);// 출력 : 1

// Map 자료 반복문 돌리기
for(var key of person.keys()){
	console.log(key);
}

//자료를 직접 집어넣고 싶다면
var person = new Map ([
  ['age', 20],
  ['name','kim']
]);

이렇게 다룰 수 있다. 실무에선 잘 안쓰이지만 알고리즘 대비할때 다시 보게될 것이다.


▶️ Set자료형

  var names = new Set(['john','tom','andy','tom']);

  console.log(names); // set(3) {'john','tom','andy'}
  • Set은 간단한 Array와 비슷하게 생겼다. 출력해보니 중괄호로 감싼 배열과 비슷하다.
  • 그런데 Set자료형은 중복자료를 절대 허용하지 않는다. tom을 두 개 집어넣었지만 앞에있던 하나의 tom만 출력되는 것을 볼 수 있다.
  • 중복 데이터를 방지하고 싶을 때 쓰면 유용한 자료형이다.

▶️ Set자료형 다루기

  var names = new Set(['john','tom','andy','tom']);

  names.add('sally');//자료 더하기
  names.has('tom');//자료 존재 확인
  names.size('sally');//자료 갯수 세기

  //반복문 사용
  for (const person of names) {
      console.log(person);
  }

이렇게 다룰 수 있고, 반복문은 for of나 forEach가 많이 쓰인다.

  var names = ['john','tom','andy','tom'];

  var names2 = new Set(names);

  names = [...names2]
  • Set으로 이렇게 기존 배열의 중복자료를 제거하는 테크닉을 사용할 수 있겠다.

좋은 웹페이지 즐겨찾기