You need to enable JavaScript to run this app. 如何将Ramda归一化的对象还原为POST请求所需的原始格式?
优惠活动
大模型
产品
解决方案
定价
更多

如何将Ramda归一化的对象还原为POST请求所需的原始格式?

解决方案

核心逻辑是将归一化对象拆分为Visits属性和其余属性两部分,分别映射到请求体对应的字段即可:


原生JS实现

const unformatConfig = (normalizedConfig = {}) => {
  // 解构拆分Visits和其他任务配置
  const { Visits = {}, ...tasksConfigMap } = normalizedConfig;
  return {
    appointmentsConfig: Visits,
    // 其余配置的属性值直接转为数组即可
    tasksConfigs: Object.values(tasksConfigMap)
  };
};

Ramda实现

适配你之前使用Ramda的习惯,可以用更函数式的写法:

import { applySpec, propOr, dissoc, values, defaultTo, pipe } from 'ramda';

const unformatConfig = applySpec({
  // 取Visits属性作为预约配置,无值时默认空对象
  appointmentsConfig: propOr({}, 'Visits'),
  // 移除Visits属性后,提取所有属性值作为任务配置数组,无值时默认空数组
  tasksConfigs: pipe(dissoc('Visits'), values, defaultTo([]))
});

逻辑说明

你之前用indexBy将原始任务数组转为以taskTypeGroupAlias为键的对象,还原时直接提取非Visits属性的所有值,就能得到原始的tasksConfigs数组结构,不需要额外修改属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 02:36:02