亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何簡化基于多種條件的函數打印

如何簡化基于多種條件的函數打印

一只甜甜圈 2023-08-24 10:43:01
我有一個函數,它根據 3 個輸入變量格式化字符串。我已經使用 if / else if 語句完成了它,但我相信應該有一種更簡單的方法來做到這一點。我有 3 個變量,它們都可以是字符串或 null。我正在使用 javascript / 角度。我可以想象有一個類似的情況,有 5 個變量,這會增加顯著的 if 數量,如何簡化它?formatDistance(){let distance;let swim;let bike;let run;swim = this.sport.swim ? this.sport.swim : null;bike = this.sport.bike ? this.sport.bike : null;run = this.sport.run ? this.sport.run : null;if(swim && bike && run) {  distance = swim + ' / ' + bike + ' / ' + run; }else if(swim && bike && !run) {  distance = swim + ' / ' + bike; }else if(swim && !bike && run) {  distance = swim + ' / ' + run; }else if(!swim && bike && run) {  distance = bike + ' / ' + run; }else if(!swim && !bike && run) {  distance = run; }else if(!swim && bike && !run) {  distance = bike; }else if(swim && !bike && !run) {  distance = swim; }else {  distance = '';} return distance;}
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

您可以將過濾器與連接一起使用。序列由數組中的序列定義。將any 替換為null,可以看到它會與/ 連接在一起。


下面的片段中的示例。


[swim, bike, run].filter(item => item !== null).join('/')

swim = null

bike = null

run = 'c'



console.log('Should return c =>', [swim, bike, run].filter(item => item !== null).join('/'))


swim = 'a'

bike = null

run = 'c'


console.log('Should return a/c =>', [swim, bike, run].filter(item => item !== null).join('/'))



swim = null

bike = 'b'

run = 'c'


console.log('Should return b/c =>', [swim, bike, run].filter(item => item !== null).join('/'))


swim = 'a'

bike = 'b'

run = 'c'


console.log('Should return a/b/c =>', [swim, bike, run].filter(item => item !== null).join('/'))


查看完整回答
反對 回復 2023-08-24
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

嘗試使用這個


formatDistance(){

    let distance = "";

    let swim;

    let bike;

    let run;

    swim = this.sport.swim ? this.sport.swim : null;

    bike = this.sport.bike ? this.sport.bike : null;

    run = this.sport.run ? this.sport.run : null;

    

    if(swim != null)

      distance = distance + swim + ' / ';

    if(bike != null)

      distance = distance + bike + ' / ';

    if(run != null)

      distance = distance + run + ' / ';

    distance = distance.substring(0, distance.length - 1);

    return distance;

}

我所做的是根據可用性附加值并刪除最終的值/


查看完整回答
反對 回復 2023-08-24
  • 2 回答
  • 0 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號