2015-02-28 2 views
-3

Я пытаюсь проверить, содержит ли команда одну из следующих строк в массиве. Если да, то удалите его. Почему это не так?Проверьте, содержит ли строка одну из строк в массиве

function changeName(name) { 
    var team = name; 
    var removearray = ['.CS', ' Dota2', '-Dota2', ' Esports', 'eSports', ' Tactics', 'DotCom', ' DotA2', ' - LoL', '-LoL', ' Carry', 'Â', ' LoL']; 
    removearray.forEach(function(word) { 
     team = team.replace(new RegExp(word, 'g'), ''); 
    }); 
    return team; 
} 
+0

начало с помощью проверки консоли на наличие ошибок. 'string' не определено и, скорее всего, будет' team' вместо – charlietfl

+1

Ну, 'changename' действительно не определено. –

+0

@PeterPik, основанный на ошибке в вашей консоли, вы вызываете «changename». Но функция «changeName» с капиталом N. –

ответ

1

Пожалуйста, обратите внимание, что "Foreach" не поддерживается в некоторых браузерах, таких как IE8.

Кроме того, пожалуйста, рассмотрим следующую реализацию:

function changeName(name) { 
    var removearray = ['.CS', ' Dota2', '-Dota2', ' Esports', 'eSports', ' Tactics', 'DotCom', ' DotA2', ' - LoL', '-LoL', ' Carry', 'Â', ' LoL']; 
    return team = removearray.reduce(function(previous, current) { 
    return previous.replace(new RegExp(current, 'g'), ''); 
    }, name); 
} 

Метод «снижения» доступны в массиве прототипа в JavaScript, это очень хороший способ делать такие задачи, как этот.

0
function changeName(name) { 
    var team = name; 
    var removearray = ['.CS', ' Dota2', '-Dota2', 
    ' Esports', 'eSports', ' Tactics', 'DotCom', 
    ' DotA2', ' - LoL', '-LoL', ' Carry', 'Â', ' LoL']; 
    for(var i = 0; i < removearray.length; i++){ 
     while(team.indexOf(removearray[i]) > -1) { 
      var index = team.indexOf(removearray[i]); 
      if (index > -1) { 
       team = team.substr(0, index) + 
        team.substr(index + removearray[i].length); 
      } 
     } 
    } 
    return team; 
} 

var one = changeName('John'); // returns 'John' 
var two = changeName('John Dota2 Doe'); // returns 'John Doe' 
var three = changeName('John Dota2 Doe Dota2.CS') // returns 'John Doe' 
Смежные вопросы