JS 객체 자체는 키-값 구조입니다. ES6에 Map을 추가해야 하는 이유는 무엇인가요?
1. 지도
1. 지도 생성자
먼저 Map의 간단한 사용법을 살펴보겠습니다
// 字符串作为key, 和JS对象类似 var map = new Map() // set map.set('name', 'John') map.set('age', 29) // get map.get('name') // John map.get('age') // 29
이 코드를 사용하면 JS 객체만큼 간결하지 않은 것 같습니다
하지만 Map의 장점은 키가 어떤 유형이든 될 수 있다는 것입니다
// 对象作为key演示 var xy = {x: 10, y: 20} // 坐标 var wh = {w: 100, h: 200} // 宽高 var map = new Map() // set map.set(xy, '坐标') map.set(wh, '宽高') // get map.get(xy) // '坐标' map.get(wh) // '宽高'
위는 객체를 키로 사용하는 맵을 보여줍니다. 다음은 예시입니다
Map 생성자는 배열 전달도 지원합니다
var map = new Map([["name", "John"], ["age", "29"]]) // 遍历key for (var key of map.keys()) { console.log(key) // name, age }
2. 반복
for of를 사용하여 Set처럼 Map을 반복하고 키에 대해 map.keys()를 호출하고 값에 대해 map.values()를 호출하고 키-값 엔터티에 대해 map.entries()를 호출합니다
var map = new Map() // set map.set('name', 'John') map.set('age', 29) // get map.get('name') // 'John' map.get('age') // 29 // 遍历key for (var key of map.keys()) { console.log(key) } // 遍历value for (var val of map.values()) { console.log(val) } // 遍历实体 for (var arr of map.entries()) { console.log('key: ' + arr[0] + ', value: ' + arr[1]) } // 遍历实体的简写 for (var [key, val] of map.entries()) { console.log('key: ' + key + ', value: ' + val) }
3. 방법 및 속성
2. 위크맵
지도와의 차이점
기본 유형 값을 키 이름으로 허용하지 않습니다
키, 값, 항목 및 크기가 없습니다
다음과 같은 방법이 있습니다
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.