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

ES6环境下如何根据payload的mainValue取值条件构造JS对象

方案1:固定双值场景(最简洁)

直接用ES6计算属性+三元表达式,一行完成条件判断,无需额外冗余代码:

const { mainValue } = payload;

const newObj = {
    propertyA: someValue,
    AttributeA: {
        [mainValue === 'optionA' ? 'newProp1' : 'newProp2']: {
            value: mainValue
        }
    }
};

方案2:多值可扩展场景

如果后续mainValue可能新增取值,建议提前维护映射表,提升可维护性:

const { mainValue } = payload;
// 统一维护枚举值到属性名的映射
const propMapping = {
    optionA: 'newProp1',
    optionB: 'newProp2'
};

const newObj = {
    propertyA: someValue,
    AttributeA: {
        [propMapping[mainValue]]: {
            value: mainValue
        }
    }
};

方案3:属性内部结构不同场景

如果newProp1和newProp2的内部结构不一致,可以直接映射整个属性对象:

const { mainValue } = payload;
const attrMapping = {
    optionA: { newProp1: { value: 'optionA', extraField: 'test1' } },
    optionB: { newProp2: { value: 'optionB', anotherField: 'test2' } }
};

const newObj = {
    propertyA: someValue,
    AttributeA: { ...attrMapping[mainValue] }
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:36:03