如何使用Ramda从对象列表中获取指定key的首个非null值
Ramda 实现查找数组中第一个非null指定属性值的单行写法
首先给出直接可用的单行实现:
const result = R.compose(R.prop('key'), R.find(R.propSatisfies(R.complement(R.isNil), 'key')))(arr)
逻辑说明
R.isNil用于判断值是否为null/undefined,R.complement(R.isNil)是对该规则取反,即判断值非空R.propSatisfies(判断条件, 'key')用于校验对象的key属性是否满足非空规则,若对象本身没有key属性也会返回不满足R.find(校验规则)会遍历数组,返回第一个符合校验规则的对象R.compose(R.prop('key'), 查找逻辑)是函数组合用法,对查找得到的对象取出其key属性值,最终得到目标结果"this!"
如果运行环境支持JS可选链语法,还可以写得更简洁:
const result = R.find(R.propSatisfies(R.complement(R.isNil), 'key'))(arr)?.key
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

