Javascript 具有匿名函数的三元算子

Javascript 具有匿名函数的三元算子,javascript,anonymous-function,ternary-operator,Javascript,Anonymous Function,Ternary Operator,我想重新写入if,并在另一个三元运算符中切换 var result = fieldValue ? fieldValue.split("/") : null; var res = null; if (result.length > 0) { switch (label.toLowerCase()) { case "jenkins job name": res = result[result.length - 2]; break; case "jen

我想重新写入if,并在另一个三元运算符中切换

var result = fieldValue ? fieldValue.split("/") : null;
var res = null;
if (result.length > 0) {
  switch (label.toLowerCase()) {
    case "jenkins job name":
      res = result[result.length - 2];
      break;
    case "jenkins job number":
      res = result[result.length - 3];
      break;
  }
我正在尝试以下它不工作,我做错了什么

result = fieldValue ? fieldValue.split("/") : null;
var res = result.length > 0 ? () => {
  switch (label.toLowerCase()) {
    case "jenkins job name":
      return result[result.length - 2];
    case "jenkins job number":
      return result[result.length - 3];
  }
} : null;

旁注:如果结果为NULL,当试图获得NULL属性的长度属性更改为字段值时,将得到异常。fieldValue.split(“/”):

为了使两个代码具有相同的结果,您应该像这样调用anonimus函数:

var res = result.length > 0 ? (() => {
    switch (label.toLowerCase()) {
        case "jenkins job name" :
            return result[result.length - 2];
        case "jenkins job number" :
        return result[result.length - 3];
    }    
})() : null; 

有什么错误吗?这看起来像是对三元运算符的误用,使内容更难阅读,但不管怎样。使用一个iLife,比如
(function(){switch…})(
。您没有调用该函数,因此
res
将被分配一个函数或
null
。我同意@mikemcaughan的说法,不确定您为什么这样做。在这里使用if语句更容易。