Javascript 如何使用Ramda.js映射对象值并只获取第一个元素?

Javascript 如何使用Ramda.js映射对象值并只获取第一个元素?,javascript,ramda.js,Javascript,Ramda.js,我有这样的意见: { a: [obj1, obj2, obj3...], b: [obj1, obj2, obj3...], c: [obj1, obj2, obj3...] } 我希望有那个输出(每个键只有数组中的第一个对象) 我想用电脑做这件事 (由于未定义obj1、obj2和obj3,所以这个精确的代码不起作用)最简单的答案就是map(head,obj),或者如果您想要一个可重用的函数,map(head) 您可以在上看到这一点。注意,由于未使用键,您可以将其简化为R.map(

我有这样的意见:

{
  a: [obj1, obj2, obj3...],
  b: [obj1, obj2, obj3...],
  c: [obj1, obj2, obj3...]
}
我希望有那个输出(每个键只有数组中的第一个对象)

我想用电脑做这件事


(由于未定义
obj1
obj2
obj3
,所以这个精确的代码不起作用)

最简单的答案就是
map(head,obj)
,或者如果您想要一个可重用的函数,
map(head)


您可以在

上看到这一点。注意,由于未使用
,您可以将其简化为
R.map(value=>value[0],data)
。(Ramda将对象视为知道如何映射的函子。)但是Ramda的
head
本质上是
xs=>xs[0]
,所以这也可以写成
R.map(R.head,data)
,我们得出了我的解决方案。是的,这更好!更简单更优雅!我试着用head,但之前不是完全正确的方式。
{
  a: [obj1],
  b: [obj1],
  c: [obj1]
}
const data = {
  a: [obj1, obj2, obj3],
  b: [obj1, obj2, obj3],
  b: [obj1, obj2, obj3]
}

const updatedData = R.mapObjIndexed( value => ([value[0]]), data)