如果满足某些条件,如何创建仅具有值的对象?

时间:2016-05-12 21:47:31

标签: javascript object

我试图在对象中放入一个if语句,但我不确定它是否可行。

这就是我的目标。

function typed(){
    $(".code-animate").typed({
        strings: options.typed.strings,
        typeSpeed: options.typed.typeSpeed,
        backSpeed: options.typed.backSpeed,
        contentType: 'text',
        loop: true,
        if(options.typed.callback)callback: options.typed.callback // this is what I am trying to do
    });
}

4 个答案:

答案 0 :(得分:4)

你总是可以把它拉到外面:

{   case WM_ENTERSIZEMOVE:
        render->UpdateRender();
        break;
}

答案 1 :(得分:4)

有几种方法可以达到你想要的效果:

三元运营商:

var foo = {
    callback: someValue ? someValue : null
}

OR运算符(在大多数简单情况下,往往比三元更优雅):

var foo = {
    callback: someValue || null
}

发布对象创建插入:

var foo = {};
if (someValue) foo.callback = someValue;

请注意,在前两种情况下,您的对象将始终具有名为“callback”的成员。如果不满足条件,它将具有null值。在最后一种情况下,如果不满足条件,则您的对象将没有名为“callback”的成员。如果这对您来说很方便,可以使用else语句强制您的对象使用空值进行“回调”。

答案 2 :(得分:2)

您可以先构建对象,然后在键入的函数中使用它:

var params = {
    strings: options.typed.strings,
    typeSpeed: options.typed.typeSpeed,
    backSpeed: options.typed.backSpeed,
    contentType: 'text',
    loop: true,
}

if( something == true ) { params.test = 'qwerty'; }

$(".code-animate").typed(params);

答案 3 :(得分:2)

如果目标是使用三元运算符而不是if,那就是这样:

Object.assign(
    {
      key1: value1,
      key2: value2,
    }, 
    cond ? {key3: value3} : {}
)