Set()
Set은 value 들로 이루어진 컬렉션
new Set()은 새로운 set 을 만든다
Set은 인덱스로 데이터를 조회할수 없다
set.size 는 set 이 가지고있는 데이터의 개수를 조회한다
set.has(value) 는 value가 set 안에 존재한다면 true 를 반환한다
indexOf()로 데이터를 찾는것보다 Set이 더 빠르다
set.add(value) 는 value 를 set 안 에 추가한다
Set에는 같은 데이터가 2번 존재할수가 없다, 같은 데이터가 추가되는 경우 추가되지않는다
set.delete(value) 는 value 를 set 에서 제거한다
set.clear() 는 set 안의 모든 데이터를 제거한다
set.keys(), set.values(), set.entries() 는 이터레이터들을 리턴하며, Map과의 호환성을 위해 존재한다
(이터레이터란? https://pks2974.medium.com/javascript%EC%99%80-iterator-cdee90b11c0f)
Javascript와 Iterator
자바스크립트를 처음부터 다시 생각하고 공부해 보려고 한다.
pks2974.medium.com
let dogs = new Set()
dogs.add('chihuahua')
dogs.add('bodercolie')
console.log('dogs',dogs) // Set ['chihuahua','bodercolie']
dogs.delete('cat') // false Set 안에 존재하지않기 때문에
dogs.delete('bodercolie') // true set 안에 존재하기 때문
dogs.size // 1 Set 안에 있는 value 의 개수를 리턴
dogs.has('chihuahua') //true Set 안에 존재하는 값이라서
dogs[0] // undefined Set 은 인덱스로 값을 찾을수가없음
dogs.clear() //Set 안에 있는 모든 value 삭제
console.log(dogs) // Set(0)
Map()
Map 은 key -- value 의 쌍으로 이루어져있는 컬렉션이다
new Map() 으로 새로운 map 을 만들수있다
map.set(key,value) 는 map 에 key 와 value 를 추가한다, 같은 key 값이 존재할경우 기존 데이터를 덮어쓴다
map.get(key) 는 key 와 관련된 value 를 리턴한다
map.has(key) 는 key 가 존재하는지 확인해서 boolean 을 리턴한다
map.size 는 map 의 엔트리 개수를 조회한다
map.delete(key) 는 key 와 관련된 엔트리를 삭제한다
map.clear() 는 map의 모든 데이터를 삭제한다
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
Object.entries() - JavaScript | MDN
Object.entries() 메서드는 for...in와 같은 순서로 주어진 객체 자체의 enumerable 속성 [key, value] 쌍의 배열을 반환합니다. (for-in 루프가 다른점은 프로토 타입 체인의 속성도 열거한다는 점입니다).
developer.mozilla.org
let dogs = new Map();
dogs.set('name', 'blue') //추가, set은 같은 key가 존재하면 데이터를 덮어쓴다.
dogs.set('breed', 'bodercolie') //추가
dogs.get('name') // 'blue' => key와 관련된 value를 리턴한다.
dogs.has('name') // true => key가 존재하는지 확인한다.
dogs.size //2 => 엔트리의 개수를 반환한다.
dogs.clear() // 모든 데이터 삭제
Map을 생성하는 3가지 방법
//1.
let dogs = new Map();
//2.
let dogs = new Map([['name', 'blue']]);
//3.
let dogs = new Map().set('name', 'blue').set('breed', 'bodercolie')
Map.keys() 와 Map.values()
각각의 순회할 수 있는 모든 iterable object 를 반환한다
let dogs = new Map().set('name', 'blue').set('breed', 'bodercolie')
console.log([...dogs.keys()]) //[ 'name', 'breed' ]
console.log([...dogs.values()]) //[ 'blue', 'bodercolie' ]
Map 순회하는 2가지 방법
let dogs = new Map().set('name', 'blue').set('breed', 'bodercolie')
//for-of
for (let [key, value] of dogs) {
console.log(key + ':' + value);
}
//forEach ** value - key 순임!!
dogs.forEach((value, key, map) => {
console.log(key + ':' + value);
});
// 둘다 아래와 같은 결과가 반환된다.
// 'name:blue'
//'breed:bodercolie'
Map.entries()
map 안의 모든 엔트리들을 순회할수있는 itrable object 를 반환한다
let dogs = new Map().set('name', 'blue').set('breed', 'bodercolie')
let iterObj = dogs.entries();
console.log('iterObj',iterObj)
//'iterObj' Iterator [Map Iterator] {
// __proto__: { next: ƒ next() }
//}
console.log(iterObj.next()) //{ value: [ 'name', 'blue' ], done: false }
console.log(iterObj.next()) //{ value: [ 'breed', 'bodercolie' ], done: false }
console.log(iterObj.next()) //{ value: undefined, done: true }()
'Programming(ko,en) > Javascript' 카테고리의 다른 글
What is Vanilla JS? (0) | 2022.11.03 |
---|---|
JavaScript DataStructure (0) | 2022.10.24 |
JavaScript Syntax Basics (0) | 2022.10.17 |
How does a browser works? (0) | 2022.10.12 |
What is the JavaScript? (1) | 2022.10.10 |