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

如何修正代码实现将嵌套对象的color属性移至父对象?

问题分析与修正

你的代码存在两个关键错误:

  • 错误地给字符串类型的key添加color属性,但key只是对象的键名(比如"a"、"b"),并非需要修改的目标对象
  • 尝试访问不存在的value.color,color实际嵌套在value.model层级下

修正后的代码

Object.entries(container).forEach(([key, value]) => {
    // 从model中取出color,挂载到当前对象层级
    value.color = value.model.color;
    // 删除多余的model属性
    delete value.model;
});

代码说明

  • value对应container中的每个子对象(如container.a、container.b),直接给它添加color属性,值取自value.model.color
  • 执行delete value.model后,就能得到你期望的结构

可选:不修改原对象的纯函数写法

如果不想改动原container对象,推荐用纯函数方式生成新对象:

const transformedContainer = Object.fromEntries(
    Object.entries(container).map(([key, { model, availability }]) => [
        key,
        {
            color: model.color,
            availability
        }
    ])
);

这种方式不会修改原数据,返回一个全新的转换后对象,更符合函数式编程规范。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:18:50