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

使用ES6方法转换JSON数组,如何将condition值设为对象外层键

数组格式转换解决方案

你的原有实现存在两处不符合需求的逻辑:

  1. 使用reduce将所有children配置合并为了同一个对象,目标格式要求每个字段规则单独作为一个对象放在数组内
  2. 将condition作为属性挂载到了合并后的对象上,正确结构要求把condition的值作为对象的键,字段规则数组作为对应的值

正确实现代码如下:

const result = this.parents.map(({ condition, children }) => {
  // 每个children项单独转换为目标结构的对象,组成规则数组
  const ruleList = children.map(v => ({
    [v.column]: {
      [v.comparison]: v.columnValue
    }
  }))
  // 返回以condition为键的对象即可
  return {
    [condition]: ruleList
  }
})

注:你给出的目标格式外层{ [ ... ] }属于不合法的JS对象语法,对象必须为键值对结构,若需要外层包裹对象,可自行补充键名即可,比如const finalResult = { filterRules: result }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:18:00