2017-01-31 2 views
0

Я хочу иметь возможность удалять значения из массива, которые содержат значение round.Удалить определенное значение из массива в каждом цикле - jQuery

Пример массив, представленный может быть [team1, team2, round3, round5, team3, round6]

У меня этот код, который предназначен для перебора массива и удалить элемент из массива, если он содержит round используя search

function modifyFilterConfig(idStr, target) { 
$.each(idStr, function(i, value){ 
    console.log("The index of this value is: " + i); 
    console.log("The value is: " + value); 
    console.log("The value match is: " + value.search(target)); 
    if(value.search(target) == 0) { 
     // IF THE ARRAY CONTAINS A ROUND REMOVED IT FROM THE ARRAY 
     // i - 1 is the current index of the array (i.e. the ROUND filter(s)) 
     idStr = idStr.splice(i - 1, 1); 
    } 
    i = i++; 
}); 
console.log("Return value:"); 
console.log(idStr); 
return idStr; 
} 

В настоящее время результаты, которые я получаю, являются последней командой в массиве, например team6, но мой желаемый результат: [team2, team3, team6]

Наконец, я хочу, чтобы функция чтобы вернуть массив, поэтому я снова использую его в моем более широком коде.

console.log("IDS before processing: " + ids); var ids = modifyFilterConfig(ids, "round"); console.log("IDS after processing: " + ids);

ответ

1

Используйте функцию filter и использовать метод RegExp test.

var arr = ["team1", "team2", "round3", "round5", "team3", "round6"] 
 
arr = arr.filter(e => !/round/.test(e)); 
 
console.log(arr);

+0

Разбил его Ричард! Что такое совместимость с браузером, например, для такой функции? – WebDevDanno

+0

Он должен быть функциональным в большинстве браузеров, если я правильно помню –

Смежные вопросы