小编use*_*413的帖子

我们如何使用javascript在数组中使用正则表达式过滤数组中的元素?

假设我有两个数组:一个是正则表达式,另一个是输入.那么,在性能和可读性方面,做出类似输出的最佳方法是什么?

var regex = [
    '/rat/',
    '/cat/'
    '/dog/',
    '/[1-9]/'
]

var texts = [
    'the dog is hiding',
    'cat',
    'human',
    '1'
]
Run Code Online (Sandbox Code Playgroud)

最终的结果是

result = [
    'human'
]
Run Code Online (Sandbox Code Playgroud)

好吧,我在想的是做一些像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]);
}
Run Code Online (Sandbox Code Playgroud)

但是,这不可读吗?也许还有另一种我没有想到的方式.

javascript regex arrays optimization

7
推荐指数
1
解决办法
7813
查看次数

标签 统计

arrays ×1

javascript ×1

optimization ×1

regex ×1