immutable.js从map/hash获取密钥

kna*_*ode 21 immutable.js

我想从以下不可变映射中检索keys():

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

我期待输出:

["firstKey", "secondKey"]
Run Code Online (Sandbox Code Playgroud)

然而,这输出:

{"_type":0,"_stack":{"node":{"ownerID":{},"entries":[["firstKey",null],["secondKey",null]]},"index":0}}
Run Code Online (Sandbox Code Playgroud)

怎么做得好?

JSFiddle链接:https://jsfiddle.net/o04btr3j/57/

lum*_*mio 37

虽然这个问题不久前得到了解答,但这里有一点点更新:

ES6解决方案:

const [ ...keys ] = map.keys();
Run Code Online (Sandbox Code Playgroud)

Pre ES6解决方案:

var keys = map.keySeq().toArray();
Run Code Online (Sandbox Code Playgroud)


Sag*_*ina 35

这就是ImmutableJS对象的样子.

如果你想得到:

["firstKey", "secondKey"]
Run Code Online (Sandbox Code Playgroud)

你需要这样做:

console.log(map.keySeq().toArray())
Run Code Online (Sandbox Code Playgroud)

  • 您还可以使用泛型`toJS()`将不可变类型转换回普通的js对象或数组. (3认同)