1) var x = {1, 2, 3, 5, 6, 7};
2) var x = {};
3) var x = new Set('javascript');
4) var x = new Set(range(5));
5) var x = new Set();
3, 5
오답4 : 기본적으로 range
라는 함수는 자바스크립트 내부에 존재하지 않습니다.
Set
객체는 value만을 저장하며 중복을 허용하지 않는 Collection입니다.
Set
은 다양한 자료형을 value로 사용이 가능합니다.
let set = new Set();
let num = new Set([1, 2, 3, 4, 5]);
let str = new Set("Hello!");
console.log(set); // Set(0) {}
console.log(num); // Set(5) { 1, 2, 3, 4, 5 }
console.log(str); // Set(5) { 'H', 'e', 'l', 'o', '!' }
str
의 경우 6개의 알파벳을 넣지만, set은 중복을 허용하지 않기 때문에 중복이 제거되어 총 5개만 저장이 되게 됩니다.
//add
set.add(1).add(10).add(20);
console.log(set); // Set(3) { 1, 10, 20 }
//has
console.log(set.has(10)); //true
//delete
set.delete(1);
console.log(set); //Set(2) { 10, 20 }
set.add()
호출 시 set
이 반환되므로 체이닝(chaining)이 가능합니다.
Collection
객체인 Set
이 가지고 있는 iterator속성을 이용하여 for...of
구문을 통해 반복문 수행이 가능합니다.
let str = new Set('Hello!")
console.log(str);//Set(5) { 'H', 'e', 'l', 'o', '!' }
for(let item of str) console.log(item); // H e l o !
for(let item of str.keys()) console.log(item); // H e l o !
for(let item of str.values()) console.log(item); // H e l o !
for(let item of str.entries()) console.log(item);
//[ 'H', 'H' ] [ 'e', 'e' ] [ 'l', 'l' ] [ 'o', 'o' ] [ '!', '!' ]