Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Immutablejs:一个将映射键转换为数组的线性代码?_Javascript_Immutable.js - Fatal编程技术网

Javascript Immutablejs:一个将映射键转换为数组的线性代码?

Javascript Immutablejs:一个将映射键转换为数组的线性代码?,javascript,immutable.js,Javascript,Immutable.js,从文档中: 我得到一张地图的关键点,然后在地图上循环,将它们转换成一个数组。是否有一行代码可以将这些键干净地转换为数组?您可以使用键,IndexedSeq具有toArray方法: var map = Immutable.fromJS({ a: 1, b: 2, c: { d: "asdf" } }) var arr = map.keySeq().toArray() 如果您可以使用ES6: var map = Immutable.fromJS({ a: 1, b

从文档中:

我得到一张地图的关键点,然后在地图上循环,将它们转换成一个数组。是否有一行代码可以将这些键干净地转换为数组?

您可以使用
IndexedSeq
具有
toArray
方法:

var map = Immutable.fromJS({
  a: 1,
  b: 2,
  c: {
    d: "asdf"
  }
})

var arr = map.keySeq().toArray()
如果您可以使用ES6:

var map = Immutable.fromJS({
  a: 1,
  b: 2,
  c: {
    d: "asdf"
  }
});

var [...arr] = map.keys();
console.log(arr); // ["a", "b", "c"]


您能展示您当前的实现吗?谢谢@OlliM。完美的很好,这更干净。用一张小地图快速测量表明keySeq的速度是原来的两倍。(Immutable.js 3)
var arr = Array.from(map.keys());
console.log(arr); // ["a", "b", "c"]