2016-02-25 14 views
10

Chcę odzyskać klucze(), z następującym niezmienne mapie:immutable.js dostać klucze z mapy/hash

var map = Immutable.fromJS({"firstKey": null, "secondKey": null }); 
console.log(JSON.stringify(map.keys())); 

spodziewałbym wyjście:

["firstKey", "secondKey"] 

to jednak wyjścia:

{"_type":0,"_stack":{"node":{"ownerID":{},"entries":[["firstKey",null],["secondKey",null]]},"index":0}} 

Jak zrobić to poprawnie?

JSFiddle Link: https://jsfiddle.net/o04btr3j/57/

Odpowiedz

25

ten sposób ImmutableJS obiekt wygląda.

Jeśli chcesz uzyskać:

["firstKey", "secondKey"] 

Co trzeba zrobić:

console.log(map.keySeq().toArray()) 
+2

Można również użyć generycznych 'Tojs()' przekonwertować niezmienne typy z powrotem do normalnej js obiektów lub tablic. – OlliM

12

Chociaż to pytanie, ale odpowiedział jakiś czas temu, tutaj jest trochę zmiana:

ES6 Rozwiązanie:

const [ ...keys ] = map.keys(); 

Pre ES6 Rozwiązanie:

var keys = map.keySeq().toArray(); 
+0

Świetne zaktualizowane rozwiązanie ES6! –

+1

ES6 to ES2015. Masz na myśli pre-ES2015? – Druckles

+0

Zmieniono. Dziękuję za wzmiankę – lumio