Language/javascript

[JavaScript] Map, Set

다닿 2023. 10. 14. 20:58

Map

key , value 페어로 저장

key에 어떤 데이터 타입도 넣을 수 있다.

key가 정렬된 순서로 저장

key 중복 안됨.

 

  • Map 생성
var myMap = new Map();

 

  • Map 안에 내용 추가
myMap.set('one',1);
myMap.set('two',3);
myMap.set('two',2);  // 같은 key 값은 내용을 덮어 씌움
console.log(myMap);

 

  • Map안의 내용
console.log("key 배열로 출력", myMap.keys());
console.log("value 배열로 출력", myMap.values());
console.log("entrie 배열로 출력", myMap.entries());

iterator 로 출력됨. ( 순회 가능 )

 

  • Map안의 내용 순회
// key로 순회
for(const key of myMap.keys()) {
    console.log(key);
}

// value로 순회
for(const value of myMap.values()) {
    console.log(value);
}

// key value 모두를 포함하여 순회
for(const entries of myMap.entries()) {
    console.log(entries);
}

 

  • Map의 길이
console.log("Map의 길이", myMap.size);

 

  • key로 value 찾기
var value = myMap.get('two'); // key로 value 찾기
console.log("key로 value 찾기 : ",value);

 

  • key가 Map에 있는지 확인
var ishas = myMap.has('two'); // key 기반 검색
console.log("있는지 확인 : ",ishas);

 

Map 참고

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Map


Set

값만 저장한다. value

값이 중복 되지 않는다.

 

  • Set 생성
var mySet = new Set();

 

  • Set안에 내용 추가
mySet.add("one");
mySet.add("two");
mySet.add("three");
mySet.add("three");
mySet.add("three");
console.log(mySet);

중복된 값은 또 추가 되지 않는다.

 

  • Set안의 내용
console.log("key 배열로 출력\n", mySet.keys());
console.log("value 배열로 출력\n", mySet.values());
console.log("entrie 배열로 출력 \n", mySet.entries());

keys와 values 같은 값이 나온다.

 

  • Set 순회
for(const key of mySet.keys()) {
    console.log("key:", key);
}

for(const value of mySet.values()) {
    console.log("value:",value);
}

for(const entries of mySet.entries()) {
    console.log("entries:",entries);
}

 

  • value가 Set에 있는지
console.log(mySet.has("two"));

 

  • Set의 길이
console.log(mySet.size);

 

Set 참고

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set