ES6 - 새로운 데이터 구조 지도

새 데이터 구조 맵
JavaScript 에서 대상 의 본질은 키 값 이 맞 는 집합 이지 만 키 는 문자열 일 수 밖 에 없습니다.이러한 결함 을 보완 하기 위해 ES6 는 새로운 데이터 구조 맵 을 가 져 왔 다.Map 도 키 값 이 맞 는 집합 입 니 다. 키 는 문자열 일 뿐만 아니 라 다른 데이터 형식 일 수도 있 습 니 다. 예 를 들 어 대상 (신기 하지 않 습 니까?).아래 의 예 를 보십시오.
var m = new Map();
var ul = document.getElementsByTagName('ul');
m.set(ul,'hi');
console.log(m.get(ul)); //hi

Map 의 조작 에는 다음 과 같은 몇 가지 가 있 습 니 다.
m.set(ul,'content'); // Map    
m.get(ul);//    ul    
m.has(ul);//     ,        ul
m.delete(ul);//    ul,    true,    false
m.size  //  m  
m.clear(); //  m    

맵 에 직접 초기 값 을 부여 하 는 방법:
<span style="font-size:14px;">var m = new Map([[li_1,'hello'],[li_2,'world']]);</span>

받 아들 인 매개 변 수 는 하나의 배열 이 고 배열 안의 구성원 은 키 값 이 맞 는 배열 을 표시 합 니 다.만약 당신 이 속 았 다 면, 위의 줄 코드 의 실제 실행 상황 을 보십시오.
var li_1 = document.getElementsByTagName('li')[0];
var li_2 = document.getElementsByTagName('li')[1];
var list = [ [li_1,'hello'] , [li_2,'world'] ];
var m = new Map();
list.forEach( ([key,value]) => m.set(key,value) );
console.log(m.get(li_1)); //hello

한 키 에 여러 번 값 을 부여 하면 뒤의 값 은 앞의 값 을 덮어 씁 니 다.주의해 야 할 것 은 키 가 대상 일 때 인용 이 같 아야 키 가 같다 고 생각 하 는 것 이다.지도의 옮 겨 다 니 는 방법 을 소개 한다.
var ul = document.getElementsByTagName('ul');
var li_1 = document.getElementsByTagName('li')[0];
var li_2 = document.getElementsByTagName('li')[1];
var list = [ [li_1,'hello'] , [li_2,'world'] ];
var m = new Map();
list.forEach( ([key,value]) => m.set(key,value) );
for ( let key of m.keys() ){
	console.log(key);
}
for ( let val of m.values() ){
	console.log(val);
}
for ( let item of m.entries() ){
	console.log(item[0],item[1]);
}
for ( let [key,val] of m.entries() ){
	console.log(key,val);
} 
m.forEach( function( val , key , ul ){
	console.log( this ); //ul
	console.log( val , key);
} , ul ); // forEach               this  

맵 및 기타 데이터 형식 변환
맵 에서 데 이 터 를 돌 리 는 가장 간단 한 방법 은... 확장 연산 자 를 사용 하 는 것 입 니 다.예 를 들 면:
console.log( ...m ); //[li, "hello"] [li, "world"]

Map 대상 을 돌 릴 때 모든 키 가 문자열 이 어야 하 며 Object. create () 함 수 를 사용 해 야 합 니 다.Map 에서 JSON 으로 전환 할 때 도 모든 키 가 문자열 이 어야 하 며 JSON. Stringify () 함 수 를 사용 해 야 합 니 다.

좋은 웹페이지 즐겨찾기