简体   繁体   English

我如何使用javascript数组检查字符串匹配的正则表达式是否已经存在

[英]How do I check if a string matching regex already exists in array with javascript

I am trying to create array of non duplicate line going from end of array to start from another array. 我正在尝试创建非重复行的数组,该重复行将从数组末尾开始,从另一个数组开始。

I tried this: 我尝试了这个:

for(var i = len; i > 0; i--){
        if(resultArray[i] != undefined && resultArray[i].match(blahRegex)){
            if(lastArray[blahRegex]){
                console.log("entering here")
                lastArray.push(resultArray[i])
            }
            // console.log(resultArray[i])
        }

You can use filter for that. 您可以为此使用filter

Here is an example: 这是一个例子:

var lastArray = resultArray.filter(value => blahRegex.test(value));

Oh, just noticed that you want to keep only unique values. 哦,刚注意到您只想保留唯一的值。

var lastArray = resultArray.reduce((acc, value) => {
     if(blahRegex.test(value) && acc.indexOf(value) == -1){
         acc.push(value);
     }
     return acc;
}, []);

What this does is to retain all unique values in the resultArray array that match the blahRegex regex. 这样做是在resultArray数组中保留与blahRegex正则表达式匹配的所有唯一值。

您可以结合使用filterSet

let lastArray = [...new Set(resultArray.filter(value => blahRegex.test(value)))];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM