Javascript 数组上的ramda函数

Javascript 数组上的ramda函数,javascript,ramda.js,Javascript,Ramda.js,在此数组中,可以通过家庭id的存在来确定受抚养人。家庭id是对该成员受抚养的员工id的引用(例如,普查成员列表中的“Mary”是“Sue”的受抚养人) 如何构建一个函数,该函数接收id和成员数组(普查成员),并返回属于具有该id的用户的所有依赖项 如果id是从属的,或者不在censusMember数组中,那么函数应该返回null 如果没有依赖项,则函数应返回空arrray 例如: 如果我以id 6的形式输入 那么输出应该是 const censusMembers = Object.freeze(

在此数组中,可以通过家庭id的存在来确定受抚养人。家庭id是对该成员受抚养的员工id的引用(例如,普查成员列表中的“Mary”是“Sue”的受抚养人)

如何构建一个函数,该函数接收id和成员数组(普查成员),并返回属于具有该id的用户的所有依赖项

如果id是从属的,或者不在censusMember数组中,那么函数应该返回null

如果没有依赖项,则函数应返回空arrray

例如:

如果我以id 6的形式输入 那么输出应该是

const censusMembers = Object.freeze([
    {
        id: 1,
        name: 'Bob'
    }, {
        id: 2,
        name: 'Sue'
    }, {
        id: 3,
        name: 'Mary',
        household_id: 2
    }, {
        id: 4,
        name: 'Elizabeth',
        household_id: 6
    }, {
        id: 5,
        name: 'Tom'
    }, {
        id: 6,
        name: 'Jill'
    }, {
        id: 7,
        name: 'John',
        household_id: 6
    }
]);

下面是一些代码,它们似乎可以满足您的需要:

const{curry,find,propEq,has,filter}=R
const householdMembers=咖喱(人口普查,id)=>{
const person=find(propEq('id',id),人口普查);
返回人
?有('住户id',人)
无效的
:过滤器(propEq('住户id',id),人口普查)
:null
})
var censusMembers=Object.freeze([
{id:1,名称:'Bob'},
{id:2,名字:'Sue'},
{id:3,姓名:'Mary',住户id:2},
{id:4,姓名:'Elizabeth',家庭{id:6},
{id:5,名字:'Tom'},
{id:6,名字:'Jill'},
{id:7,姓名:'John',家庭{id:6}
])
常量户主=户主成员(普查成员)
控制台.日志(住户(6))
//=> [
//{id:4,名字:'Elizabeth','Househouse_id':6},
//{id:7,名字:'John','Househous_id':6}
//   ]
console.log(住户(7))/=>null
console.log(住户(8))/=>null
console.log(住户(5))/=>

你能告诉我们你试过什么吗?const countHouseholders=R.groupBy(R.propo(0,'house_id');户主(普查成员);因此,如果我理解正确,在这个示例数据中,
7
8
将返回
null
,而
5
将返回空数组?对吗?如果是这样,我个人觉得这是一个非常不舒服的API。
[
{"id":4,"name":"Elizabeth","household_id":6}, 
{"id":7,"name":"John","household_id":6}
]