Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何转换整数数组中的对象数组,使用ramda.js从这些对象中提取值?_Javascript_Ramda.js - Fatal编程技术网

Javascript 如何转换整数数组中的对象数组,使用ramda.js从这些对象中提取值?

Javascript 如何转换整数数组中的对象数组,使用ramda.js从这些对象中提取值?,javascript,ramda.js,Javascript,Ramda.js,我试图将一个对象数组转换为一个整数数组,使用Ramda.js从这些对象中提取值。我只需要使用uid值保留节点参与者,但是,我似乎没有正确地执行此操作 我想改变这个 var listObejcts = { "participants": [ { "entity": { "uid": 1 } }, { "entity": { "uid": 2 } } ] } 为此: { "p

我试图将一个对象数组转换为一个整数数组,使用Ramda.js从这些对象中提取值。我只需要使用uid值保留节点参与者,但是,我似乎没有正确地执行此操作

我想改变这个

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中不是选项。