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

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

過濾數組值 - return 語句不會結束函數

過濾數組值 - return 語句不會結束函數

臨摹微笑 2022-06-05 16:58:36
我一直在想一些我認為應該很容易的事情,但我似乎無法解決。我有一個數組,其中包含不同類型的文本,這些文本未排序。因此,我想根據文本類型的優先級僅可視化其中一個。以下是數據示例:所以我從模板觸發一個函數:<ng-container *ngFor="let text of elements.Event.Texts"> <p *ngIf="textSelector(text)">{{bestText}}</p></ng-container>這是功能:textSelector(item: any) {if (item.Type === 'VeryShort') {  this.bestText = item.Value;  return true;} else {  if (item.Type === 'Short') {    this.bestText = item.Value;    return true;  } else {    if (item.Type === 'Medium') {      this.bestText = item.Value;      return true;    } else {      return false;    }  }}我只需要導出一個文本 - 按“文本類型”優先級。就我而言,對于屏幕截圖中的示例,我得到了“Short”和“VeryShort”文本。有人可以給我一個提示我做錯了什么嗎?我將不勝感激!
查看完整描述

2 回答

?
達令說

TA貢獻1821條經驗 獲得超6個贊

了解模板代碼的作用很重要:它迭代并elements.Event.Texts調用textSelector每個元素。只要返回 true,就會創建一個元素。textSelectorp


我會建議一種不同的方法。只調用一次函數,因為您只需要一個值。


 <p *ngIf="textSelector(elements.Event.Texts)">{{bestText}}</p>

這就是我編寫函數的方式。我會使用一個數組來設置優先級,所以它更易于維護。


const order = ["VeryShort", "Short", "Medium"];


textSelector(items: any[]) {

  let bestItem;

  for (const item of items) {

    if (item.Type === order[0]) {

      this.bestText = item.Value;

      return true;

    }

    if (!bestItem) {

      bestItem = item;

    } else if (order.indexOf(item.Type) < order.indexOf(bestItem.Type)) {

      bestItem = item;

    }

  }

  if (!bestItem) {

    return false;

  }

  this.bestText = bestItem.Value;

  return true;

}

如果您有任何問題或需要解釋,請告訴我。


查看完整回答
反對 回復 2022-06-05
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

試試這個。它可能有效


textSelector(item: any) {


if (item.Type === 'VeryShort') {

  this.bestText = item.Value;

  return true;

} else  if (item.Type === 'Short') {

    this.bestText = item.Value;

    return true;

  } else if (item.Type === 'Medium') {

      this.bestText = item.Value;

      return true;

    } else {

      return false;

    }

  }


查看完整回答
反對 回復 2022-06-05
  • 2 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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