在选项 javascript 中调用变量

calling a variable in option javascript

我想要实现的是,当学生选择他们的号码时,它会将他们的名字推送到跟踪中。像这样:

window.dataLayer.push({
  'event': 'event',
  'name': 'Joe'
});

我试图用这个实现它但失败了。

window.dataLayer.push({
  var studentName = '~@studentNumber~';
  if (studentName=="01") {
    return "Joe";
  }
  else if (studentName=="02") {
    return "Jane";
  }
  else {
    return "error - User has no name"
  };
  'event': 'event',
  'name': name
});

我做错了什么以及如何解决这个问题?

谢谢

对象字面量中不能有 if 语句。但是,您可以使用 ternary operator.

试试这个:

var studentName = '~@studentNumber~';
window.dataLayer.push({
  'event': 'event',
  'name': studentName=="01" ? "Joe" : studentName=="02" ? "Jane" : "error - User has no name"
});

我也不确定 '~@studentNumber~' 是如何工作的。我假设某些库或其他东西会用您想要的值替换它。

In javascript when you write { obj:value} this is object pattern you can't write if statement here so simple for you

var studentName = '~@studentNumber~';
var name = "error - User has no name";
if (studentName=="01") {
  name = "Joe";
}
else if (studentName=="02") {
 name = "Jane";
}

window.dataLayer.push({
'event': 'event',
'name': name
});

你也可以按照上面的回答