2013-10-15 3 views
1

Nodejs 0.10.20의 맵이 깨져있는 것 같습니다. 그것은 --harmony (--harmony_collections 플래그 포함)로 시작합니다.
참조 용으로 http://dailyjs.com/2012/10/15/preparing-for-esnext/을 확인하십시오.
예제는 Firefox 20.0에서 실행됩니다. 나는Nodejs의지도 컬렉션 Harmony/ES6 broken?

> var map = new Map([ ["name", "Nicholas"], ["title", "Author"]]);
undefined
> map
{}

다음 않는 Nodejs 콘솔에서

그래서 제대로 작동 나던 contsructor 초기화. 다음 나는 파이어 폭스 예제를 따라 그들은 대부분 일을 해달라고 :

> console.log(map.has("name")); // true
false
undefined
> console.log(map.get("name")); // "Nicholas"
undefined
undefined
> console.log(map.has("title")); // true
false
undefined
> console.log(map.get("title")); // "Author"
undefined
undefined
> console.log(map.size()); // 2
TypeError: Object # has no method 'size'
at repl:1:17
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl.js:122:7)
at Interface. (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)

임 혼란이 기본지도 방법을 해달라고 작업을. Nodejs 버전 0.10.20

+0

나는 당신의 문제가 무엇인지 확실하지 않습니다. 그것은 개발 기능입니다. 또한, REPL에서'console.log()'를 사용하지 마십시오. 결과는 이미 검사되고 동일한 방식으로 버려집니다. –

+0

당신은 모든 배열을 그 코드의 키로서, 단지 임의의 배열 요소가 아니라 사용할 필요가 있습니다 ... – dandavis

답변

2

작동 중입니다. 나는 당신이하려고하는 것은 모질라에 특정 노드 v0.10.13

var map = new Map(); 
map.set("name", "Nicholas"); 
map.set("title", "Author"); 

> map.has("name"); 
true 
> map.get("name"); 
'Nicholas' 
> map.has("title"); 
true 
> map.get("title"); 
'Author' 

에 그것을 테스트. V8에는 구현되어 있지 않습니다. 당신이 시도한 것 중에 size과 생성자를 가진 배열 초기화는 V8에 없다. V8에서 es 조화로운 구현을위한 훌륭한 문서를 찾을 수 없었기 때문에 작업하기가 어려웠습니다. 또한 아직 표준이 아니므로 구현이 달라질 수 있습니다.

+0

맞습니다. V8은 Map 생성자에 대한 선택적인'iterable' 인수를 아직 이해하지 못했습니다. 제안서에 추가되었습니다 (V8은 최근 어쨌든 반복자를 지원합니다). –

+0

확인. 고마워. 이 물건이 nodejs 0.12에 들어오고 있다고 가정하니? – deepblue

+0

@deepblue는 매우 높지 * 보입니다. –

0

특히, v0.10.25의지도를 Node.js를하면 다음과 같은 방법을 지원하기 위해 나타납니다

> console.log(Object.getOwnPropertyNames(Map.prototype)) 
[ 'constructor', 'get', 'set', 'has', 'delete' ] 

매우 불행하게도,지도의 요소를 반복 할 수있는 방법이 될 것 같지 않습니다.