You need to enable JavaScript to run this app. 如何基于现有扁平化对象动态生成指定结构的嵌套JS对象
优惠活动
大模型
产品
解决方案
定价
更多

如何基于现有扁平化对象动态生成指定结构的嵌套JS对象

实现思路

直接遍历原对象的所有键,把每个键对应的值包装成{debug: 原值}的结构存入新对象即可,以下是两种常用的实现方案:

方案1:使用Object.entries + reduce(推荐,写法更简洁)

const object1 = {
    DataStore : false,
    Header: false,
    Footer : false,
    Sidebar : false,
    Main : false,
}

const registerComponentsLocal = Object.entries(object1).reduce((acc, [key, value]) => {
    acc[key] = { debug: value }
    return acc
}, {})

该方案全程无副作用,所有转换逻辑都封装在reduce方法内,键和值均动态从原对象读取,不需要手动写死任何属性名,原对象新增/删除属性时,输出结果会自动同步。

方案2:使用for...in遍历(兼容性更好,适合需要兼容低版本JS环境的场景)

const object1 = {
    DataStore : false,
    Header: false,
    Footer : false,
    Sidebar : false,
    Main : false,
}

const registerComponentsLocal = {}
for (const key in object1) {
    // 可选:如果需要过滤原型链上的属性可以加这行判断
    if (object1.hasOwnProperty(key)) {
        registerComponentsLocal[key] = { debug: object1[key] }
    }
}

两种方案都完全满足动态生成要求,原对象的键、值修改后,最终生成的registerComponentsLocal会自动适配结构,不需要手动调整转换逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 08:06:00