簡體   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