2016-02-25 4 views
10

Я хочу, чтобы получить ключи() из следующей непреложной Карты:immutable.js получить ключи от карты/хэша

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

Я бы ожидать выход:

["firstKey", "secondKey"] 

Однако эти результаты:

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

Как это сделать должным образом?

JSFiddle ссылка: https://jsfiddle.net/o04btr3j/57/

ответ

25

Это как ImmutableJS выглядит объект.

Если вы хотите получить:

["firstKey", "secondKey"] 

Вам нужно сделать:

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

Вы также можете использовать общий 'toJS()', чтобы преобразовать неизменные типы обратно в нормальные Js объектов или массивы. – OlliM

12

Хотя этот вопрос получил ответил некоторое время назад, вот немного обновление:

ES6 Решение:

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

Pre ES6 Решение:

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

Отличное обновление ES6! –

+1

ES6 - ES2015. Вы имеете в виду pre-ES2015? – Druckles

+0

Изменено. Благодарим за упоминание – lumio

Смежные вопросы