객체의 단점
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])
}
- 값 추가하기
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을 만든다.