網站搜尋

javascript - 切換字串值的布林值等效方法


我知道你可以在 JavaScript 中用一行程式碼切換布林值。

var toggle = false;
if(true) toggle != toggle;

但是這也可以用字串做到嗎?我知道可以用一些 if 陳述式來實現。但有可能用一行程式碼做到嗎?像這樣的東西:

var string_toggle = "CAT";
if(true) "CAT" = "ESP" || "ESP" = "CAT";

如果我所問的問題不清楚,請告訴我,以便我可以改進問題。

答案#1

你可以使用三元運算子。

string_toggle = (string_toggle === "CAT") ? "ESP" : "CAT";

這實際上可以轉化為:

if (string_toggle === "CAT") {
  string_toggle = "ESP";
} else {
  string_toggle = "CAT";
}

答案#2

如果你是重度使用者,為什麼不創建一些類呢?overkill

這裡我正在使用這個 JavaScript 語法。

你應該查看 ECMAScript 6,你會喜歡它的!

class ToggleValue {

  constructor(value1,value2){
    
    this.values = [value1,value2]
    this.pointer = 0
  
  }
  
  toggle(){
    
     this.pointer = +!this.pointer
    
  }
  
  valueOf(){
  
    return this.values[this.pointer]
  
  }
  
}



var dupaOrGrabowa = new ToggleValue('dupa', 'grabowa')

dupaOrGrabowa.toggle()
console.log(dupaOrGrabowa + '')
dupaOrGrabowa.toggle()
console.log(dupaOrGrabowa + '')