TIL-37 자바스크립트 완벽 가이드

khundi·2022년 7월 12일
0
post-thumbnail

자바스크립트 완벽 가이드

Set 클래스

  • 배열과 달리 세트는 순서가 없고 인덱스도 없으며, 중복을 허용하지 않는다.
  • add(), delete(), clear()로 요소를 추가하거나 제거할 수 있다.
  • 세트의 size프로퍼티는 배열의 length 프로퍼티와 마찬가지로 세트에 포함된 값의 개수를 반환한다.
let a = new Set("Mississippi"); // "M', "i", "s", "p"
a.size // 4
  • add() 메서드

    • add() 메서드는 인자를 하나만 받는다.
    • 배열을 전달하면 배열 요소가 아니라 배열 자체를 추가한다.
    • add()는 항상 자신을 호출한 세트를 반환하므로 세트에 여러 가지 값을 추가 할때는 s.add('a').add('b').add('c');처럼 메서드 체인으로 연결할 수 있다.
  • delete() 메서드

    • 세트 요소를 한 번에 하나씩 삭제한다.
    • delete()add()와 달리 불 값을 반환한다.
    • 제거가 되면 true 그 요소가 없으면 false를 반환한다.
  • has() 메서드

    • 세트 요소의 존재 여부를 확인하는 메서드.
    • 존재 여부를 확인하는데 최적화되어 있으며, 세트에 요소가 얼마나 많든 아주 빠르다.

Map 클래스

  • 키로 구성된 값 집합이며 각 키는 다시 다른 값과 연결된다.
  • 임의의 값을 '인덱스'로 사용할 수 있다.
  • Map() 생성자의 선택 사항인 인자는 [key, value] 배열을 전달하는 이터러블 객체여야 한다.
  • get()으로 주어진 키와 연결된 값을 검색할 수 있다.
  • set()으로 키-값 쌍을 추가할 수 있다.
  • 이미 존재하는 키로 set()을 호출하면 해당 키에 연결된 값을 수정한다.
    추가되는 것이 아니다.
  • Set 클래스와 비슷한 메서드를 가진다. has(), delete(), clear(), size프로퍼티 등이 있다.
  • keys() 메서드를 이용해서 키만 순회할 수 있다.
  • values() 메서드를 이용해서 값만 순회할 수 있다.
let map = new Map([["x", 1], ["y", 2]]);
[...map.keys()]    // ["x", "y"]
[...map.values()]  // [1, 2]
[...map.entries()] // [["x", 1], ["y", 2]] : [...map]과 같다.
  • Array 클래스의 forEach() 메서드를 지원한다.
map.forEach((value, key) => {  // key, value 순이 아니라 value, key 순이다.
	 // 첫 번째 호출에서 값은 1, 키는 "x"이다. 두 번째 호출에서 값은 2, 키는 "y"이다.
});
profile
안녕하세요. 웹 프론트엔드 개발자 전성훈입니다.

0개의 댓글