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

Ramda JS 基于允许列表设置对象对应属性为true的实现方法

Ramda 实现方案

你可以根据自己的偏好选择以下两种实现方式:

方案1:遍历属性判断

完全符合你描述的「遍历对象属性,判断是否在模板数组中再修改值」的逻辑,可读性更高:

import * as R from 'ramda';

// 原始数据
const currentObject = {
  errors: false,
  values: false,
  warnings: false,
};
const template = ['values', 'warnings'];

// 核心处理逻辑
const processedObject = R.mapObjIndexed(
  (val, key) => R.includes(key, template) ? true : val,
  currentObject
);

方案2:对象合并实现

代码更简洁,性能优于遍历判断(尤其当template数组长度较长时):

import * as R from 'ramda';

// 原始数据
const currentObject = {
  errors: false,
  values: false,
  warnings: false,
};
const template = ['values', 'warnings'];

// 核心处理逻辑:先把模板数组转成属性全为true的对象,再和原对象合并覆盖
const overrideObject = R.fromPairs(R.map(key => [key, true], template));
const processedObject = R.mergeRight(currentObject, overrideObject);

注意:Ramda 所有方法默认执行不可变操作,两种实现都不会修改原始的currentObject,会返回处理后的全新对象,符合函数式编程的无副作用要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:48:01