如何转换为高阶函数?

我正在尝试将以下内容转换为HOF,但以下是我想出的最好的方法。原来是标准的。如何更好地使用函数式编程?

第一次尝试:

const privileges = {
        canaccessproject: 'Project',canaccessReport: 'Report'
    },licenses = {
        core: 'Core',review: 'Review'
    };

const getPrivileges = (access) => getPermissions(access,privileges);
const getLicenses = (access) => getPermissions(access,licenses);
const getPermissions = (access,entity) => Object.keys(access).map((p) => (access[p] ? entity[p] : '')).join(',');

// output: "Project,Report"
console.log(getPrivileges({canaccessproject: true,canaccessReport; true })) 

// output: "Review"
console.log(getLicenses({review: true,core; false })) 

第二次尝试:

const getPrivileges = (access) => getPermissions(access)(privileges)
const getLicenses = (access) => getPermissions(access)(licenses);
const getPermissions = (access) => (entity) => Object.keys(access).map((p) => (access[p] ? entity[p] : '')).join(',');
ccyzzxt 回答:如何转换为高阶函数?

好吧,getPermissions可以将实体作为它的第一个参数,然后可以返回一个带有access的函数,

 const getPermissions = (entity) => (access) => Object.keys(access).map((p) => (access[p] ? entity[p] : '')).join(',');

 const getLicenses = getPermissions(licenses);
本文链接:https://www.f2er.com/2974777.html

大家都在问