javascript - JavaScript 对象中的条件语句

标签 javascript jquery html

我正在创建以下 Dygraph 对象:

function prime() {
  g = new Dygraph(
    document.getElementById("g"),
      data, //This is the variable I want to avoid passing in for older browsers
      {
      labelsDivStyles: { 'textAlign': 'right' },
      title: document.getElementById("title").value,
      titleHeight: 35,
      labelsSeparateLines: true,
      includeZero: true
      }
  );
}

我想要一个浏览器检查来确定是否包含“数据”,例如:

if(Browser.Version() > 8){
  //include data variable
} else{
  //don't include
}

除了创建第二个函数来处理其他情况之外,是否有人有任何想法

最佳答案

您要么需要预先创建和操作对象文字,要么需要在valuenull/undefined之间交替使用三元运算符>.

var myObj = {
    labelsDivStyles: { 'textAlign': 'right' },
    title: document.getElementById("title").value,
    titleHeight: 35,
    labelsSeparateLines: true,
    includeZero: true
};

if( Browser.Version() > 8 ) {
    myObj.data = 42;
}

function prime() {
    g = new Dygraph(
     document.getElementById("g"),
      data,
      {
      labelsDivStyles: { 'textAlign': 'right' },
      title: document.getElementById("title").value,
      titleHeight: 35,
      labelsSeparateLines: true,
      includeZero: true,
      data: Browser.Version() > 8 ? 42 : null
      }
  );
}

您还可以选择使用一个自调用函数来完成该工作并返回该对象,但这与示例#1 几乎相同。无论哪种方式,您都无法告诉 ECMAscript 在形成对象文字时创建或不创建 key 。

关于javascript - JavaScript 对象中的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298527/

相关文章:

javascript - javascript setInterval 和 setTimeout 'threads' 如何工作?

javascript - jQuery 中的 .on() 不适用于委托(delegate)事件

javascript - 我可以禁用与 Canvas 的每个鼠标交互以与底层对象交互吗?

javascript - 如何访问从 Promise.all() 返回的 key

javascript - Angularjs pubsub 与 $broadcast

jquery - 单击时动画仅有效一次

jquery - 仅启用选择框中的第一个选项

html - 使用 CSS 水平滚动

javascript - 如何在 immutable.js 中合并 map ?

javascript - 嵌入式 js 代码如何在页面上插入表单或其他动态内容?