You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:15:03