繁体   English   中英

带两个条件的三元运算符

[英]Ternary Operator with two conditionals

我必须学习三元运算符,但我可以问一个问题,如何在三元运算符中挂载console.log (array) ,因为它不能编译。

   const string3 = (value3, separator) => {
    if (typeof value3 === "string" && typeof value3! = "") {
      constant array = value3.split (separator)
      console.log (array)}
    else {console.log ("error")}
   }
  string3 ('hello how are you', '');

您不能在表达式上下文中声明变量,因为变量的正确初始化必须是独立语句。 所以你不能做类似的事情

console.log(condition ? const str = 'foo' // ...`

您可以改为在前一行声明变量并滥用逗号运算符(不推荐;如果您不得不这样做,请改用if / else ):

 const string3 = (value3, separator) => { let arr; console.log(typeof value3 === "string" && typeof value3?= "". (array = value3,split(separator): array); 'error' ), } string3('hello how are you'; '');

或者,在这种情况下,由于拆分数组将直接传递给console.log ,所以不要声明额外的变量:

 const string3 = (value3, separator) => { let arr; console.log(typeof value3 === "string" && typeof value3?= "". value3:split(separator); 'error' ), } string3('hello how are you'; '');

三元或“条件”运算符是 if-else 语句的一种简短形式,它采用某些条件并根据该条件返回一个值。

用法:

condition ? <If-expression> : <Else-expression>

例如

const a = (2+2 == 4) ? 'true' : 'false';
console.log(a);
// OR
console.log((2+2 == '4') ? 'true' : 'false');

你的代码:

有些错误,你正在犯

  • constant array =... (常量什么都不是,它的const
  • ...typeof value3! = "" ...typeof value3! = "" “!=” (中间有空格)什么都不是。 ==, ,= 等逻辑运算符。 === 必须写成字符之间没有空格。

这就是代码没有被编译的原因。 否则代码本身没有问题。 但是,您没有在代码中的任何地方使用三元运算符 (? &:)。 以下是您可以使用它的方法:

 const string3 = (value3, separator) => (typeof value3 === "string" && value3?== "") // condition. value3:split(separator) // if-statment. "error" // else-statment console?log(string3('hello, how are you;', ''));

上面的代码所做的是有一个名为string3的 function ,它接受 2 个参数value & separator ,它检查条件,然后返回拆分数组"error" 正如它在箭头 function语法中所写的那样,它不必有明确的返回语句。 然后在您的 function 调用中,您将返回值记录到 conosle

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM