web-dev-qa-db-fra.com

immutable.js récupère les clés de la carte/du hachage

Je veux récupérer des clés () de la carte immuable suivante:

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

Je m'attendrais à la sortie:

["firstKey", "secondKey"]

Cependant ceci produit:

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

Comment le faire correctement? 

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

19
knagode

Bien que cette question ait reçu une réponse il y a quelque temps, voici une petite mise à jour:

Solution ES6:  

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

Solution Pre ES6:  

var keys = map.keySeq().toArray();
29
lumio

Voici à quoi ressemble l'objet ImmutableJS.

Si vous voulez avoir:

["firstKey", "secondKey"]

Tu as besoin de faire:

console.log(map.keySeq().toArray())
30
Sagi Medina

Peut-être juste répondre à ma propre question qui m’amène ici, mais j’ai trouvé mapKeys() qui vous donnera l’accès aux clés dans une boucle normale. Cela semble un peu plus "la bonne façon". (Les docs sont si vagues, qui sait!)

par exemple:

Map({ a: 1, b: 2 }).mapKeys((key, value) => console.log(key, value))
// a 1
// b 2
1
atomictom