let array1 = ["?", "!", "."];
let array2 = ["live.", "ali!", "harp", "sharp%", "armstrong","yep?"];
console.log(array2.filter((x) => x.endsWith("?")));
The output is just: ['yep?']
Because the function endsWith()
only checked for "?"
as you see in the code.
How do I loop the elements on the array1
(suffixes) inside the endsWith
function so the output is:
['live.', 'ali!', 'yep?']
You could use a regex, and then
match
each element in thefilter
iteration against it./[?!.]$/
says match one of these things in the group ([?!.]
) before the string ends ($
).Regarding your comment you can pass in a joined array to the RegExp constructor using a template string.