[英]How does Ramda.map over Immutable.List return a List instead of an Array?
我在Immutable.js中创建了一个地图列表,如下所示:
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文档中说明了获得List
的原因:
map
调度到第二个参数的
map
方法(如果存在)。
您的第二个参数是List
。 是的,如Immutable文档中所示 , List
具有map
方法:
map
返回具有通过映射器函数传递的值的新
List
。
这样就解释了为什么获得List
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.