javascript - 是否有使用 IF/ELSE 语句的替代方法

标签 javascript coffeescript

问题

更多是出于好奇,但我想知道如何将 if 语句重构为更干净/不那么脆弱的东西。根据我的阅读,多态性可以用吗?

在示例中,如果 color:'red',我只想退回第一辆车。是真的。

CoffeeScript

example: () ->
    cars = [{color:'red', reg:'111'},{color:'blue', reg:'666'}]
    if cars[0].color is 'red' 
    then cars[0]
    else cars[1]

Javascript
  example: function() {
    var cars = [{color:'red',reg:'111'},{color:'blue',reg:'666'}];
    if (cars[0].color === 'red') {
      return cars[0];
    } else {
      return cars[1];
    }
  }

我理解这个问题可能由于模棱两可的性质而关闭或移动

最佳答案

? : 运算符就是这样,一个“更干净”的 if-else

http://msdn.microsoft.com/en-us/library/ty67wk28.aspx

classify = (input < 0) ? "negative" : "positive";

还有用于更大组合的 switch 语句:

http://www.w3schools.com/js/js_switch.asp
switch(n)
{
case 1:
  execute code block 1
  break;
case 2:
  execute code block 2
  break;
default:
  code to be executed if n is different from case 1 and 2
}

多态性是一个抽象概念,而不是一种编写语句的方式。这是创建类型至少有些模棱两可的方法/函数/类/等的做法。因此,如果为参数 1 提供整数,则相同的方法可以返回结果,就像将数组提供给相同的参数一样。

关于javascript - 是否有使用 IF/ELSE 语句的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19271755/

相关文章:

CoffeeScript 列表理解/数组理解

html - 如果输入框超出字符限制,则显示 span 标记消息

javascript - CKEditor 中的 keyup 事件

JavaScript/jQuery 悬停函数的行为很有趣——数组问题?

javascript - 如何将 javascript 变量放入 url 中?

javascript - 组件仅在单击两次后更新 React

JavaScript 原型(prototype)不被复制

javascript - 我是否在 Big O 运行时中计算 Math.max?

javascript - 错误: spawn ENOENT for video upload

javascript - 全局 JS 变量的令人困惑的未捕获引用错误