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

如何将对象中Results数组内的键值对迁移至原对象?

正确实现方案

需求回顾

需要将对象内Results数组中的所有键值对合并到原对象中,并移除Results属性。

问题分析

现有代码存在逻辑错误:

  • 遍历Results时将元素命名为key,但实际每个元素是对象而非键名
  • 错误地尝试将值存入数组,不符合直接合并键值对的需求
  • 属性访问逻辑混乱,导致无法正确提取Results内的键值

实现代码

通用版(支持Results多对象合并,后对象键值覆盖前对象)

const mapOscarResults = ({ data }) => {
  return data.map(entry => {
    // 解构分离Results和其他属性
    const { Results = [], ...rest } = entry;
    // 合并Results中所有对象的键值对到rest
    return Results.reduce((merged, resultItem) => ({
      ...merged,
      ...resultItem
    }), rest);
  });
};

简化版(适用于Results仅含单个对象的场景)

const mapOscarResults = ({ data }) => {
  return data.map(entry => {
    const { Results = [], ...rest } = entry;
    // 直接取第一个结果对象合并
    return { ...rest, ...Results[0] };
  });
};

代码说明

  1. 解构赋值:将entry拆分为Results数组和其余属性集合rest,避免修改原对象
  2. 合并逻辑:
    • 通用版用reduce遍历Results,逐个合并每个对象的键值对到rest
    • 简化版直接提取Results第一个对象展开合并
  3. 容错处理:给Results设置默认空数组,避免entry无Results属性时报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:20:03