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

如何使用RamdaJS将offerStatus复制到嵌套JSON数组的产品对象中

用RamdaJS实现offerStatus字段批量复制到子产品对象中

需求:将每个offer对象中的offerStatus字段复制到其products数组下的每个product对象内。

实现代码

const { map, evolve, prop, assoc } = require('ramda');

// 定义转换函数
const addOfferStatusToProducts = map(evolve({
  products: map(assoc('offerStatus', prop('offerStatus')))
}));

// 原始数据
const originalOffers = [
  {
    "offerId": "123",
    "offerStatus": "ACTIVATED",
    "products": [{"productId": "1"}]
  },
  {
    "offerId": "456",
    "offerStatus": "NOT_ACTIVATED",
    "products": [{"productId": "2"}, {"productId": "3"}]
  }
];

// 执行转换
const transformedOffers = addOfferStatusToProducts(originalOffers);
console.log(JSON.stringify(transformedOffers, null, 2));

代码说明

  • map(...):遍历外层的offer数组,对每个offer对象执行后续处理
  • evolve({ products: ... }):仅修改offer对象的products属性,其余属性保持原样
  • map(assoc('offerStatus', prop('offerStatus'))):遍历products数组的每个product对象,通过assoc新增offerStatus字段,字段值由prop('offerStatus')从当前所属的offer对象中获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:37:37