如何使用 Ramda.js 映射对象值并仅获取第一个元素?
How can I map over object values using Ramda.js and take only first element?
我有这样的输入:
{
a: [obj1, obj2, obj3...],
b: [obj1, obj2, obj3...],
c: [obj1, obj2, obj3...]
}
我想要那个输出(每个键只有数组中的第一个对象)
{
a: [obj1],
b: [obj1],
c: [obj1]
}
我想使用 ramda.js
const data = {
a: [obj1, obj2, obj3],
b: [obj1, obj2, obj3],
b: [obj1, obj2, obj3]
}
const updatedData = R.mapObjIndexed( value => ([value[0]]), data)
(此代码无效,因为 obj1
、obj2
和 obj3
未定义)
最简单的答案就是 map(head, obj)
,或者如果您想要一个可重复使用的函数,map(head)
。
您可以在 Ramda REPL.
上看到实际效果
我有这样的输入:
{
a: [obj1, obj2, obj3...],
b: [obj1, obj2, obj3...],
c: [obj1, obj2, obj3...]
}
我想要那个输出(每个键只有数组中的第一个对象)
{
a: [obj1],
b: [obj1],
c: [obj1]
}
我想使用 ramda.js
const data = {
a: [obj1, obj2, obj3],
b: [obj1, obj2, obj3],
b: [obj1, obj2, obj3]
}
const updatedData = R.mapObjIndexed( value => ([value[0]]), data)
(此代码无效,因为 obj1
、obj2
和 obj3
未定义)
最简单的答案就是 map(head, obj)
,或者如果您想要一个可重复使用的函数,map(head)
。
您可以在 Ramda REPL.
上看到实际效果