【问题标题】:Assigning expressions to a Ternary Operator将表达式分配给三元运算符
【发布时间】:2016-01-13 21:56:26
【问题描述】:

我对三元运算符有一个很好的问题,我试图给表达式一个不同的值。但是我遇到了一个错误,直到今天,我之前从未尝试过使用三元运算符这样做。为什么我不能让表达式成为三元运算符的结果?(我知道它也需要函数)他们没有发布 JavaScript 有这个能力有什么具体原因吗?

function chessboard(x, y){
    var board = '';
  var picker = true;
  for(var i = 1; i < y+1; i++){
    var j = 0;
        for(j = 0; j < x; j++){
        picker ? board += '#';picker= false; : board += ' ';picker= true;
      board += '\n';
    }
  }
  return board;
}

【问题讨论】:

  • 尝试使用逗号运算符。但我建议只使用if,因为它看起来很不可读。

标签: javascript ternary-operator


【解决方案1】:

我会将分配分配给

board += picker ? '#' : ' ';
picker = !picker;

虽然它更清楚发生了什么。

否则这会起作用(但我不推荐它!):

picker ? (board += '#', picker = false) : (board += ' ', picker = true);

【讨论】:

  • 感谢您的回答。为什么不推荐呢?
  • 因为赋值,使得代码不短,可读性差,容易出错。
猜你喜欢
  • 2012-07-03
  • 1970-01-01
  • 2012-01-20
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-02
相关资源
最近更新 更多