求与该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
相关产品推荐
相关产品推荐

