Можно ли использовать метод include и replace для нескольких строк одновременно? - PullRequest
0 голосов
/ 28 февраля 2020

Я получаю данные через API на футбол. В данных записано несколько ошибок, которые необходимо скорректировать. Что я хочу знать, так это то, что если можно написать один фрагмент кода, который выполняет эту работу, вместо того, чтобы повторять оператор if / else несколько раз, как показано ниже. Спасибо.

// So replace the strings in the includes methods in one execution 

if( el.team.name.includes("Rotterdam")){
      el.team.name = el.team.name.replace("Rotterdam", "");
    }

    if(el.team.name.includes("'65")){
      el.team.name = el.team.name.replace("'65", "");
    }  

    if(el.team.name.includes("Almelo")){
      el.team.name = el.team.name.replace("Almelo", "");
    } 

1 Ответ

1 голос
/ 28 февраля 2020

Чередуйте все возможные строки, которые вы хотите удалить, с помощью регулярного выражения, затем выполните глобальную замену пустой строкой:

el.team.name = el.team.name.replace(/Rotterdam|65|Alemo/g, '');

Примечание: даже с вашим исходным кодом нет нужно проверить, включена ли подстрока первой. Если .replace не найдет совпадений, ничто не будет заменено, поэтому следующий код также будет работать (хотя регулярное выражение является предпочтительным):

el.team.name = el.team.name.replace("Rotterdam", "");
el.team.name = el.team.name.replace("'65", "");
el.team.name = el.team.name.replace("Almelo", "");

, как при вызове .replace в результате последнего .replace:

el.team.name = el.team.name
  .replace("Rotterdam", "")
  .replace("'65", "")
  .replace("Almelo", "");

(вышеприведенное может быть хорошей стратегией, когда одно регулярное выражение будет слишком трудно читать или если у вас есть разные строки для вставки, когда найдено совпадение)

...