반응형
여승철
INTP 개발자
여승철
  • 분류 전체보기 (376)
    • CS (16)
      • 면접 준비 (7)
      • 운영체제 (0)
      • 네트워크 (2)
      • HTTP (6)
      • 스프링(Spring) IoC 컨테이너 (0)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Java (43)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • ETC (11)

블로그 메뉴

  • 홈
  • 태그

인기 글

태그

  • controller
  • jsp
  • 회원 관리
  • 게시판
  • 이펙티브 자바
  • JDBC
  • Dao
  • 맥킨지
  • 스트림
  • EC2
  • mybatis
  • HTTP
  • 로그인
  • 환경 세팅
  • 디자인 패턴
  • JSTL
  • Spring Batch
  • ubuntu
  • servlet
  • querydsl

최근 댓글

최근 글

hELLO· Designed By 정상우.
여승철

INTP 개발자

JS Map과 Set
Front-End/JS

JS Map과 Set

2023. 4. 26. 15:49
반응형

Map

Key(키)와 Value(값)을 쌍으로 이루어진 컬렉션입니다. 

 

// Map 생성 및 선언
const map = new Map();
const map = new Map([
    ['Apple', 1200],
    ['Banan', 1500],
    ['Orange', 2500]
]);

// Map 값 추가
map.set('Apple', 1200);
map.set('Banana', 1500);
map.set('Orange', 2500);

// Map 값 삭제
map.delete('Apple')

// Map 값 가져오기
map.get('Apple');

// Map 값 존재하는지 확인
map.has('Apple'); // true or false

// Map 크기
map.size;

// Map 모든 값 삭제
map.clear();

// Map 반복
map.forEach((val, key) => {
    console.log(key + "의 값: " + val);
});

// entries 반복문
for (let[key, value] of map.entries()) {
    console.log(key + ": " +value);
}

// Map key 값 가져오기
for (let key of map.keys()) {
    console.log("과일: " + key);
}

// Map value 값 가져오기
for (const value of map.values()) {
    console.log("가격: " + value);
}

 

JS 객체와 Map의 차이점

1. 키(Key) 타입:

객체의 Key는 문자열 혹은 심볼(Symbol)만 사용할 수 있습니다. 만약 다른 데이터 타입을 사용하면 자동으로 문자열로 변환됩니다. 예를 들어, 객체 속성에 정수를 Key로 사용하면 정수가 가문자열로 변환된어 저장됩니다. 
Map의 Key는 모든 데이터 타입이 키로 사용 가능합니다.

2. 키(Key) 순서:
객체의 속성은 특별한 순서를 가지고 있지 않아, 순서를 보장하지 않습니다. Map은 요소의 삽입 순서를 보장합니다.

3. 이터레이션:
객체는 iterable하지 않습니다. 객체 자체가 Symbol.iterator 메서드를 갖고 있지 않기 때문입니다. 따라서 객체를 직접 순회하려면 `for...in` 루프를 사용하거나 `Object.keys()`, `Object.values()`, `Object.entries()`와 같은 메서드를 사용하여 속성을 순회해야합니다.
Map은 iterable합니다. Map은 Symbol.iterator 메서드를 내장하고 있기 때문에 `for...of` 루프, `forEach`, `entries()`, `keys()`, `values()`와 같은 메서드를 사용하여 각 항목을 순회할 수 있습니다. 

 

Set

Set의 대표적인 특징은 중복되지 않는 값들의 집합입니다. 순서가 정해져있지 않기 때문에 인덱스로 요소에 접근할 수가 없습니다.

// Set 생성 및 선언
const set = new Set();
const set = new Set(["a", "b", "c"]);  //iterable한 인수인 경우
const set = new Set('HelloWorld');

// Set 값 추가
const set = new Set();
set.add("a");
set.add("a");
set.add("a");
set.add("b");
console.log(set.size);   // 2 출력

// Set 값 삭제 및 비우기
set.delete('b');
set.clear();

// Set 반복문
for (const val of set) {
    console.log(val);
}

// Set 값 존재하는지 확인
set.has("a");

// Set 크기
set.size;
반응형

'Front-End > JS' 카테고리의 다른 글

JS addEventListener 사용법 ( + capturing, bubbling )  (0) 2023.04.27
JS 정규식  (0) 2023.04.26
JS 자바스크립트 반복문(Loop) / for in, for of 차이점  (0) 2023.04.26
JS 내장 객체: String, Date, Math, Array, 정규식 객체 등  (0) 2023.04.26
JS 자바스크립트 배열(Array) + 배열을 다루는 내장 API들 소개  (0) 2023.04.26
    여승철
    여승철

    티스토리툴바