Javascript 拉姆达:如果属性存在,就使用它;如果不存在,就检查另一个属性是否存在并使用它

Javascript 拉姆达:如果属性存在,就使用它;如果不存在,就检查另一个属性是否存在并使用它,javascript,ramda.js,Javascript,Ramda.js,我有几个来自不同API的调用。它们都返回不同的数据。 因此,有些人返回“位置”:“前端开发人员”, 一些“标题”:“前端开发人员”, 一些“头衔职位”:“前端开发者”, 而有些人却不回这三个 所以,我想要的是使用ramda获得正确的属性。如果API返回位置,则使用位置。如果返回title,则使用title。如果返回标题位置,则返回它。如果没有这三个属性中的任何一个,只需使用空字符串 如何使用ramda实现这一点 我知道R.propOr(“”,'title'),但只有当该属性存在时,才使用它,如果

我有几个来自不同API的调用。它们都返回不同的数据。 因此,有些人返回“位置”:“前端开发人员”, 一些“标题”:“前端开发人员”, 一些“头衔职位”:“前端开发者”, 而有些人却不回这三个

所以,我想要的是使用ramda获得正确的属性。如果API返回位置,则使用位置。如果返回title,则使用title。如果返回标题位置,则返回它。如果没有这三个属性中的任何一个,只需使用空字符串

如何使用ramda实现这一点


我知道R.propOr(“”,'title'),但只有当该属性存在时,才使用它,如果不存在,则使用空字符串。我想使用ramda检查三种不同的属性,而不是使用switch case。

ramda没有为此内置任何属性。但是使用一些Ramda函数自己构建一个并不困难

const firstProp=
(dflt)
,姓名
,obj
,key=find(has(\uj,obj),name)
) =>
钥匙obj[键]:dflt
console.log
(第一支柱
( -1 
,['foo','bar','baz','qux']
,{grault:1,baz:42,corg:100,qux:5}
)
)

常数{{uuuuuuuuuuuuuuuu,find,has}=R;