0

I have a big array of strings:

['{{Wanted Value}}', 'true', '{{Wanted Value}}', '{{Wanted Value}} unwanted {{Wanted Value}}', 'false'...]

I want to filter the array and extract every {{Wanted Value}} substring to a new array. If the item in the array contains 2 or more of these substrings, I want to have each of them as a separate item. So the result of the above array would be:

['{{Wanted Value}}', {{Wanted Value}}', {{Wanted Value}}', {{Wanted Value}}']

I wrote the regex I want to use but not sure how to write the filter function correctly:

match(/\{\{(.+?)\}\}/)[0]

Thank you

0

2 Answers 2

2

You can try this approach

  • flatMap is to collect all matched strings
  • filter is to get rid of empty results

const data =['{{Wanted Value}}', 'true', '{{Wanted Value}}', '{{Wanted Value}} unwanted {{Wanted Value}}', 'false']

const result = data.flatMap(stringData => stringData.match(/\{\{(.+?)\}\}/g)).filter(stringData => stringData);

console.log(result)

Sign up to request clarification or add additional context in comments.

Comments

0

Here is a code which use reduce and string match function to filter the result

let r = ['{{Wanted Value}}', 'true', '{{Wanted Value}}', '{{Wanted Value}}', 'unwanted','{{Wanted Value}}', 'false'];

const result = r.reduce((accumulator, current) => {
  return current.match(/\{\{(.+?)\}\}/)? accumulator.concat(current): accumulator;
}, []);

console.log(result);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.