假设我有两个数组:一个是正则表达式,另一个是输入.那么,在性能和可读性方面,做出类似输出的最佳方法是什么?
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]); }
但是,这不可读吗?也许还有另一种我没有想到的方式.