我在 Immutable.js 中创建了一个 map 列表,如下所示:
List [
Map { "id": 0, "name": "John" },
Map { "id": 1, "name": "Lennon" }
]
现在,我已经使用 Ramda 的 R.map 来映射上面的列表:
R.map(map => map.get('id'))(a)
它返回一个新的 id 列表,其类型为 Immutable.List
,但不是 JS Array
。
List [ 0, 1 ]
我知道如果定义了 Symbol.iterator
,我们可以迭代任何数据结构。但返回的类型也是 List
。
这怎么可能?
最佳答案
在 Ramda documentation 中解释了您获得 List
的原因:
map
Dispatches to the
map
method of the second argument, if present.
您的案例中的第二个参数是List
。是的,List
有一个 map
方法,如 Immutable documentation 中所见。 :
map
Returns a new
List
with values passed through a mapper function.
这就解释了为什么您会得到一个 List
。
关于javascript - Ramda.map over Immutable.List 如何返回列表而不是数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44372334/