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/
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();
Voici à quoi ressemble l'objet ImmutableJS.
Si vous voulez avoir:
["firstKey", "secondKey"]
Tu as besoin de faire:
console.log(map.keySeq().toArray())
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