Javascript 将变量插入函数内的$.post中

Javascript 将变量插入函数内的$.post中,javascript,jquery,Javascript,Jquery,我正在编写一个函数来发送$。post将显示如何正确地将变量插入到对象中,具体取决于它们是否已设置。 以下是我想做的: function SendCommand(Command, QuestionId, Attr) { $.post('/survey/admin/command', { 'Command': Command, if (QuestionId) 'QuestionId' : QuestionId, if (Attr) 'Attribut

我正在编写一个函数来发送$。post将显示如何正确地将变量插入到对象中,具体取决于它们是否已设置。 以下是我想做的:

function SendCommand(Command, QuestionId, Attr) {   
   $.post('/survey/admin/command',
    {
     'Command': Command,
     if (QuestionId) 'QuestionId' : QuestionId,
     if (Attr) 'Attribute' : Attr
    }
   );   
 }

谢谢

如果存在空值的可能性,我会选择:

$.post('/survey/admin/command',
  {
   'Command': Command,
   'QuestionId' : QuestionId ? QuestionId : undefined,
   'Attribute' : Attribute ? Attribute : undefined,
  }
);

否则,我认为jQuery将忽略未定义的参数。

如果存在空值的可能性,我会选择:

$.post('/survey/admin/command',
  {
   'Command': Command,
   'QuestionId' : QuestionId ? QuestionId : undefined,
   'Attribute' : Attribute ? Attribute : undefined,
  }
);

否则,我认为jQuery将忽略未定义的参数。

这是实现此功能的快速方法

$.post('/survey/admin/command',
  {
   Command: Command,
   QuestionId: QuestionId || undefined,
   Attribute: Attribute || undefined
  }
);

不过,该方法最大的缺点是某些值(如零或空字符串)为false。所以这不是一个包罗万象的方法。

这是一个快速实现这一点的方法

$.post('/survey/admin/command',
  {
   Command: Command,
   QuestionId: QuestionId || undefined,
   Attribute: Attribute || undefined
  }
);

不过,该方法最大的缺点是某些值(如零或空字符串)为false。因此,这不是一个包罗万象的方法。

您始终可以在$.post调用之前创建数据

var data = {
 'Command': Command
};

if (QuestionId) {
  data.QuestionId = QuestionId;
}
if (Attribute) {
  data.Attribute = Attribute;
}

$.post("your/url", data);

您始终可以在$.post调用之前创建数据

var data = {
 'Command': Command
};

if (QuestionId) {
  data.QuestionId = QuestionId;
}
if (Attribute) {
  data.Attribute = Attribute;
}

$.post("your/url", data);
试试这个(未经测试)

试试这个(未经测试)