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

求与该TypeScript更新列表项代码完全等效的Ramda.js实现

等效的Ramda.js实现

以下是与你提供的TypeScript函数完全等效的Ramda.js实现:

import * as R from 'ramda';

export const updateItem = <T extends { id: I }, I>(items: T[], id: I, payload: Partial<T>) =>
  R.map(
    R.when(
      R.propEq('id', id),
      R.mergeRight(payload)
    ),
    items
  );

逻辑对应说明

  • R.map 替代原生数组的 map 方法,实现遍历数组的逻辑
  • R.when 对应原函数的三元表达式:当满足判断条件时执行转换,否则返回原元素
  • R.propEq('id', id) 实现 item.id === id 的判断逻辑
  • R.mergeRight(payload) 与 {...item, ...payload} 行为完全一致,将payload的属性合并到目标对象上,payload的同名属性会覆盖原对象属性

内容的提问来源于stack exchange,提问作者RomanGodMode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:25:25