정보실

웹학교

정보실

javascript JavaScript에서 Sets 및 Maps 탐색 (1)

본문

JavaScript ES6 사양에 도입 된 두 가지 새로운 구성을 살펴 보겠습니다.

  1. * Set *-Set 개체를 사용하면 모든 유형의 고유 한 값을 저장할 수 있습니다.
  2. * Map *-Map 객체를 사용하면 키-값 쌍을 저장하고 키의 원래 삽입 순서를 기억할 수 있습니다.

이러한 새로운 구성의 목적은 특정 사용 사례에서 데이터를 보다 쉽고 효율적으로 구성하고 액세스하는 방법을 제공하는 것입니다. 이 기사에서는 Set와 Map의 작동 방식을 살펴보고 그에 대해 수행 할 수 있는 일부 작업을 살펴 ​​봅니다.


https://scotch.io/tutorials/exploring-sets-and-maps-in-javascript 


Sets 


MDN 문서는 Set 개체를 다음과 같이 설명합니다.


값의 모음입니다. 삽입 순서대로 세트의 요소를 반복 할 수 있습니다. 세트의 값은 한 번만 발생할 수 있습니다. Sets 컬렉션에서 고유합니다. 


JavaScript Set 객체는 수학적 Set과 유사하게 작동합니다. 고유 한 값을 추가 할 수 있으며 프로토타입에 유용한 방법을 제공합니다. 이러한 방법에는 세트에 있는 항목의 추가, 제거 및 반복이 포함됩니다.


배열 대 세트 (Array vs Set) 


set과 같은 배열은 항목에 대한 추가, 제거 및 반복 작업을 허용하는 데이터 구조입니다. 그러나 배열은 중복 값을 더할 수 있고 연산이 상대적으로 느리다는 점에서 세트와 다릅니다.


배열을 통한 검색은 배열 중간에 요소를 삽입하는 것과 마찬가지로 O(n)의 선형 시간 복잡도를 갖습니다. 즉, 배열의 크기가 증가함에 따라 배열에서 항목을 검색하고 삽입하는 데 걸리는 시간이 늘어납니다.


JavaScript의 Push 및 Pop 배열 메서드의 런타임은 O(1)입니다. 즉, 이러한 작업은 배열 크기의 크기에 관계없이 일정한 실행 시간을 갖습니다. 그러나 실제로 새로운 연속 메모리 위치가 새로 형성된 어레이에 할당 될 때 복사 비용이 발생하므로 실제로 Push 작업은 O(n)입니다.


반대로, 세트에 대한 모든 삽입, 삭제 및 검색 조작의 실행 시간은 O(1)입니다.


세트 만들기 


세트를 만들어 봅시다 :

const set = new Set();

console.log(set); // Set {}

세트 초기화 


세트를 초기화하기 위해서, 값의 배열을 Set 생성자에게 건네 주면, 그 값을 가지는 Set가 생성됩니다 :

const confectioneries = new Set(['oreo', 'marshmallow','oreo', 'kitkat', 'gingerbread']);

console.log(confectioneries); // result: Set { 'oreo', 'marshmallow', 'kitkat', 'gingerbread' }

위의 스니펫에서는 중복 값 "oreo"가 Set에서 조용히 제거되고 고유 한 값만 반환됩니다.



  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

페이지 정보

조회 3회 ]  작성일19-08-14 18:08

웹학교