2017-11-29 8 views
-1

아래의 코드를 콘솔에서 실행하면 키가 있음을 알 수 있습니다 (아래 그림에서 0,1,2). 이유를 이해할 수 없습니다.지도 컬렉션에 두 개의 키가 있습니까?

우리가 두 개의 키가 보인다 : 수동 설정이 자동 생성 된 하나 키 (. 예에서을 < 키> : 1, < 키> : 2, < 키> : TRUE)

왜 그런지 알고 싶습니다.

let mapTesting = new Map([ 
    [1, 'String'], 
    [2, 123], 
    [true, 'Testing'] 
]); 
console.log(mapTesting) 

//Output: 
Map 
    size: 3 
    <entries> 
    0: 1 → "String" 
     <key>: 1 
     <value>: "String" 
    1: 2 → 123 
     <key>: 2 
     <value>: 123 
    2: true → "Testing" 
     <key>: true 
     <value>: "Testing" 
    __proto__: Object { … } 
+2

제 첨가하기 때문에 인덱스 0의 값이 "하나의"를 갖는 배열을 도시

var mapTesting = new Map([ ["one", 'String'], ["two", 123], ["three", 'Testing'] ]); mapTesting.set("another","value"); console.log(Array.from(mapTesting.keys())); 

그것들은 단지 iterable의 인덱스가 아닌가? – pinkfloydx33

+0

@ pinkfloydx33 정말 모르겠다. 나는 JS를 배우고있다. 이번 주 첫날입니다. :) –

+1

@PabloDeLuca'Map'은 반복 될 수 있으며, 그것들은 단지 반복의 인덱스 일뿐입니다. 새로운 반짝이는 ES6 + 제품에 들어가기 전에 기본적인 내용을 실제로 배워야합니다. –

답변

0

지도에는 해시 맵과 같은 키 집합이 있지만 반복기 (forEach, entries)로 사용할 수도 있기 때문에. 따라서 키의 순서가 중요합니다.

following 설명 상태 :

맵 오브젝트 신청서의 요소를 반복 할 - A에 대한 ... 루프가 각각의 반복에 대한 [키 값]의 배열이 반환.

0,1,2, ...는 순서 (키/값이 추가 된 순서)를 나타냅니다. 이어서 키 값을 나타낸다 : 즉 그것은, 값 "2"인덱스 1 ...