Как мы можем фильтровать элементы в массиве с помощью регулярных выражений в массиве с помощью 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]);
}

Но разве это не читается? Может быть, у меня есть другой способя думал о.

Ответы на вопрос(4)

Ваш ответ на вопрос