Javascript 如何转换整数数组中的对象数组,使用ramda.js从这些对象中提取值?
我试图将一个对象数组转换为一个整数数组,使用Ramda.js从这些对象中提取值。我只需要使用uid值保留节点参与者,但是,我似乎没有正确地执行此操作 我想改变这个Javascript 如何转换整数数组中的对象数组,使用ramda.js从这些对象中提取值?,javascript,ramda.js,Javascript,Ramda.js,我试图将一个对象数组转换为一个整数数组,使用Ramda.js从这些对象中提取值。我只需要使用uid值保留节点参与者,但是,我似乎没有正确地执行此操作 我想改变这个 var listObejcts = { "participants": [ { "entity": { "uid": 1 } }, { "entity": { "uid": 2 } } ] } 为此: { "p
var listObejcts = {
"participants": [
{
"entity": {
"uid": 1
}
},
{
"entity": {
"uid": 2
}
}
]
}
为此:
{
"participants": [1, 2]
}
我试过上面的代码,但没有成功。它仍然返回一个对象列表
var transform = pipe(
over(lensProp('participants'), pipe(
filter(pipe(
over(lensProp('entity'), prop('uid'))
))
))
)
console.log(transform(listObejcts))
有人知道我是怎么做到的吗
可以在此处编辑代码-一种可能是与()组合,如下所示:
const transform=evolve({参与者:映射(路径(['entity','uid']))
var listObjects={participants:[{entity:{uid:1}},{entity:{uid:2}}]}
console.log(转换(列表对象))
const{evolve,map,path}=ramda
一种可能性是与()结合,如下所示:
const transform=evolve({参与者:映射(路径(['entity','uid']))
var listObjects={participants:[{entity:{uid:1}},{entity:{uid:2}}]}
console.log(转换(列表对象))
const{evolve,map,path}=ramda
好吧,你可以在ramda中完成,但你可以简单地使用它,并有一个快速、单行、无库的解决方案:
const obj={
与会者:[
{实体:{uid:1}},
{实体:{uid:2}
]
}
obj.participants=obj.participants.map(p=>p.entity.uid);
控制台日志(obj)代码>好的,您可以在Ramda中完成,但您可以简单地使用它,并拥有一个快速、单行、无库的解决方案:
const obj={
与会者:[
{实体:{uid:1}},
{实体:{uid:2}
]
}
obj.participants=obj.participants.map(p=>p.entity.uid);
控制台日志(obj)代码>也可以使用纯JavaScript es6:
constuidarray=listObjects.participants.map({entity:{uid}})=>uid)代码>也可以使用纯JavaScript es6:
constuidarray=listObjects.participants.map({entity:{uid}})=>uid)代码>正如您所知,寻找Ramda解决方案的人可能对修改输入的技术不感兴趣。当然,这可以很容易地解决,不这样做。我真的不知道拉姆达的哲学,谢谢你的投入!我只是选择了最简单的解决方案,符合OP的要求,以满足OP的要求,您需要使用ramda。。。改变输入在fp中不是一个选项。正如你所知,寻找Ramda解决方案的人可能对修改输入的技术不感兴趣。当然,这可以很容易地解决,不这样做。我真的不知道拉姆达的哲学,谢谢你的投入!我只是选择了最简单的解决方案,符合OP的要求,以满足OP的要求,您需要使用ramda。。。改变输入在fp中不是选项。