首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有条件地设置对象属性

有条件地设置对象属性
EN

Stack Overflow用户
提问于 2013-08-02 22:46:39
回答 7查看 65.5K关注 0票数 61

是否有一些基于条件设置属性的语法?

代码语言:javascript
复制
data: {
    userId: 7,
    actionId: 36,
    express: (myCondition ? true : null) // does not work
}

我希望express要么被设置为一个值,要么根本不被设置(即,不应该有名为express的键),并且在定义之后没有额外的语句。我知道我可以将它用作布尔值,但接收方正在使用isset()检查,我想知道是否可以避免修改它。

编辑:似乎没有直接解决上述问题的方法。以下是近距离的建议:

JSON.stringify (Chris Kessel,dystroy):

代码语言:javascript
复制
var json = JSON.stringify( {
    data: {
        userId: 7,
        actionId: 36,
        express: (myCondition ? true : null)
    }
});

一个匿名函数 (Paulpro):

代码语言:javascript
复制
var data = new function(){
    this.userId = 7;
    this.actionId = 36;
    myCondition && (this.express = true);
};

a extra statement (x4rf41):

代码语言:javascript
复制
data: {
    userId: 7,
    actionId: 36
}
if(myCondition) data["express"] = true;

Eval (我的一个前同事):

代码语言:javascript
复制
eval("data = {userId: 7, actionId: 36 " + (myCondition ? ", express: true}" : "}"))

Conditional definition (不知道如何标记这个):

代码语言:javascript
复制
data = (
    (myCondition && { userId: 7, actionId: 36, express: true }) ||
    (!myCondition && { userId: 7, actionId: 36 })
);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18019854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档