Как мы можем фильтровать элементы в массиве с помощью регулярных выражений в массиве с помощью JavaScript?
Позволять'скажем, у меня есть два массива: один - регулярное выражение, а другой - вход. Что же тогда является лучшим способом - с точки зрения производительности и читабельности - сделать что-то вроде вывода?
var regex = [
'/rat/',
'/cat/'
'/dog/',
'/[1-9]/'
]
var texts = [
'the dog is hiding',
'cat',
'human',
'1'
]
конечный результат
result = [
'human'
]
Ну, я думал сделать что-то вроде:reduce
// loop by text
for (var i = texts.length - 1; i >= 0; i--) {
// loop by regex
texts[i] = regex.reduce(function (previousValue, currentValue) {
var filterbyRegex = new RegExp("\\b" + currentValue + "\\b", "g");
if (previousValue.toLowerCase().match(filterbyRegex)) {
delete texts[i];
};
return previousValue;
}, texts[i]);
}
Но разве это не читается? Может быть, у меня есть другой способя думал о.