首页 > 解决方案 > 我的三元代码不起作用 Javascript

问题描述

我转换成三元:

arr= ["A","T","T","G","C"]
 const result = arr.reduce((acc, current)=>{
  if(current === "A"){
    acc+= "T"
  } else if(current === "T"){
    acc+= "A"
  } else if(current === "G"){
    acc+=  "C"
  } else if( current === "C"){
    acc+=  "G"
  }
  return acc
},"")

console.log(result)

这就是我将它转换为三进制的方式,但它不起作用,它给出了未定义的:

const result = arr.reduce((acc, current)=>{
 current === "A"? acc+= "T"
 : current === "T"? acc+="A"
 : current === "G"? acc+="C"
 : current === "C"? acc+= "G"
                : acc
 
},"")

标签: javascriptfunctional-programmingconditional-operator

解决方案


您没有在三元减少示例中返回结果。

你应该做:

const res2 = arr.reduce((acc, current)=>{
 return current === "A"? acc+= "T"
 : current === "T"? acc+="A"
 : current === "G"? acc+="C"
 : current === "C"? acc+= "G"
                : acc
 
},"")

您也可以删除括号并执行以下操作:

const res2 = arr.reduce(
  (acc, current)=>
    current === "A"? acc+= "T"
     : current === "T"? acc+="A"
     : current === "G"? acc+="C"
     : current === "C"? acc+= "G"
     : acc
 ,"")

推荐阅读