Map

임찬수·2021년 11월 9일
0

객체의 단점

  • iterable 하지 않다.
const o = {a: 1, b: 2, c: 3}

for (let key in o) {
	console.log(key, o[key])
}

// a 1
// b 2
// c 3

Object.prototype.method = function() {}
for (let key in o) {
	console.log(key, o[key])
}

// 위와 동일하게 abc 출력후
// method f () {} 까지 출력됨 <- 해당 객체의 프로토타입까지 탐색함

그렇기 때문에 실제로 객체에 있는 값만 순회하기 위해서

hasOwnProperty()를 사용

for (let key in o) {
	if (o.hasOwnProperty(key))
	console.log(key, o[key])
}
  • 키를 문자열로만 인식한다.

Map

  1. [key, value] 쌍으로 이루어진 요소들의 집합
  2. 순서를 보장하며, iterable하다.
  3. 키에는 어떤 데이터타입도 저장할수 있으며, 문자열로 취급하지 않는다.
- 값 추가하기
const map = new Map()
map.set('name', '고힌')
map.set('age', 30)

- 사이즈 확인하기
map.size // 2

- 값 가져오기
map.get('name') // '고힌'
map.get('age') // 30

- 값 지우기
map.delete('name')

- 값 존재 여부 판단하기
map.has('name')

- 초기값 지정하기
const arr = [[10, 10], ['10', '10'], [fasle, true]]
const map1 = new Map(arr)

const arr1 = [[10, 10, 10], ['10', '10', '10'], [fasle, true, false]]
const map2 = new Map(arr)

// arr1의 경우 키: 값의 쌍이 아니기 때문에 각 요소의 두번째 값까지만 참조하여 map을 만든다.
profile
프론트엔드 개발자가 되기 위한 정보를 정리합니다.

0개의 댓글

관련 채용 정보