정보실

웹학교

정보실

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

본문

아이템 추가 


add() 메소드를 사용하여 Set에 더 많은 항목을 추가 할 수 있습니다. 이 메소드는 Set 객체에 새 값을 추가하고 Set을 반환합니다. Set 개체에 중복 항목을 추가하려고 하면 오류가 반환 되지 않고 대신 항목이 추가되지 않습니다.


예를 들어 봅시다 :

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

confectioneries.add('donut');

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

confectioneries.add('kitkat');

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

항목 삭제 


세트를 사용하면 다음 명령 중 하나를 사용하여 항목을 삭제할 수 있습니다.

  • delete()
  • clear()

delete() 메소드를 사용하기 위해 삭제할 값이 메소드에 전달됩니다. 이 메소드는 삭제에 성공하면 부울 값 true를, 그렇지 않으면 false를 리턴합니다. clear() 메소드를 사용하여 Set 객체의 모든 요소를 ​​삭제할 수 있습니다.


이 예제에서 두 가지 방법을 모두 사용해 보겠습니다.

confectioneries.delete('kitkat');

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

confectioneries.clear();

console.log(confectioneries); // log result: Set {}

세트의 크기 


Set 프로토 타입의 size 속성을 사용하여 Set의 크기를 얻을 수 있습니다. 이것은 배열의 길이 속성과 비슷합니다.

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

console.log(confectioneries.size); // log result: 5

아이템 검색 


세트에 특정 항목이 있는지 알아야 할 수도 있습니다. has() 메소드를 사용하여 수행 할 수 있습니다. has() 메서드는 항목이 Set 객체에 있으면 true를, 그렇지 않으면 false를 반환합니다.


console.log(confectioneries.has('marshmallow')); // log result: true

세트에서 항목 반환 


values​​() 메서드를 사용하여 동일한 삽입 순서로 Set 객체의 항목을 반환 할 수 있습니다. 이 메소드는 새로운 setIterator 객체를 돌려줍니다. 집합의 항목을 반환하는 비슷한 방법은 keys() 메서드입니다.

console.log(confectioneries.values()); // _log result: _[_Set Iterator] { 'oreo', 'marshmallow', 'kitkat', 'gingerbread', 'donut' }_

console.log(confectioneries.keys()); //_ log result: _[_Set Iterator] { 'oreo', 'marshmallow', 'kitkat', 'gingerbread', 'donut' }_

setIterator 객체는 Iteratable 및 Iterator 프로토콜을 구현하기 때문에 Iterator 객체입니다. Iterable 프로토콜은 루프 구문을 사용하여 일련의 값을 반복하는 방법을 지정합니다. 또한 next() 메소드를 사용하여 값을 반복 할 수 있습니다. setIterator 객체에서 next()를 호출하면 반복에서 다음 값을 얻고 Set의 모든 값이 반복 될 때까지 false를 얻습니다.


let iterator = confectioneries.values();

console.log( iterator.next()); // _{ value: 'oreo', done: false } 
_
console.log( iterator.next()); // _{ value: 'marshmallow', done: false }
_
console.log( iterator.next()); //_ { value: 'kitkat', done: false }
_
console.log( iterator.next()); //_ { value: 'gingerbread', done: false }
_
console.log( iterator.next()); //_ { value: 'donut', done: false }
_
console.log( iterator.next()); // _{ value: undefined, done: true }_

Sets는 Iterable 프로토콜을 구현하므로 다음과 같이 for ... of와 같은 루프 구문을 사용할 수 있습니다.


for (let confectionery of confectioneries) {
  console.log(confectionery);
}

/_ _console.log() result 
oreo
marshmallow
kitkat
gingerbread
donut 
__/


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

페이지 정보

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

웹학교