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

如何在JavaScript中转换对象结构?提取嵌套对象的value属性

如何将嵌套的颜色配置对象转换为简化结构?

首先明确你的输入(已修正语法错误的完整对象):

const originalObj = {
  "pencil": {
    "100": {
      "value": "#00000008",
      "type": "color"
    },
    "200": {
      "value": "#0000000d",
      "type": "color"
    },
    "300": {
      "value": "#0000001a",
      "type": "color"
    }
  }
};

目标输出结构:

{
  "pencil": {
    "100": "#00000008",
    "200": "#0000000d",
    "300": "#0000001a"
  }
}

实现方式

1. 手动映射(适合结构固定的场景)

如果对象结构完全固定,直接提取对应值即可:

const simplifiedObj = {
  pencil: {
    100: originalObj.pencil[100].value,
    200: originalObj.pencil[200].value,
    300: originalObj.pencil[300].value
  }
};

2. 动态遍历(适合键名不固定的场景)

如果pencil下的键(如100、200)可能变化,用遍历方式更灵活:

const simplifiedObj = {
  pencil: {}
};

// 遍历pencil下的所有子对象
for (const key in originalObj.pencil) {
  if (originalObj.pencil.hasOwnProperty(key)) {
    simplifiedObj.pencil[key] = originalObj.pencil[key].value;
  }
}

3. 使用Object.fromEntries简化写法

ES6+环境下可以用更简洁的数组转换写法:

const simplifiedObj = {
  pencil: Object.fromEntries(
    Object.entries(originalObj.pencil).map(([key, item]) => [key, item.value])
  )
};

说明

三种方法都能实现结构转换,后两种更适配动态键名的场景,Object.fromEntries写法最简洁,推荐在现代JS环境中使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:25:23