Issue
I currently have a string and set of substrings/search strings which I want to effectively search in the given string. This is what I have currently:
const apple = "apple"
const banana = "banana"
const chickoo = "chickoo"
const dates = "dates"
const eggplant = "eggplant"
const default = "default"
let string = "foobar" // This String changes dynamically
if (string.includes(apple)){
return apple;
} else if (string.includes(banana)) {
return banana;
} else if (string.includes(chickoo)) {
return chickoo;
} else if (string.includes(dates)) {
return dates;
} else if (string.includes(eggplant)) {
return eggplant;
} else {
return default;
}
This approach works, however I am looking for a more compact and efficent way of searching for substrings in a given string.
Edit: I am currently using the following way:
const fruits = ["apple", "banana", "chickoo", "dates", "eggplant"];
let string = "foobar" //This is dynamic
for(let fruit in fruits) {
if(string.includes(fruits[fruit])){
return fruits[fruit];
}
}
return "default";
Let me know if there is even more effective way to do this than the above one.
Solution
Using Regex:
function matchFruit(input) {
const match = input.match(/apple|banana|chickoo|dates|eggplant|default/);
if(match)
return match[0];
return "default";
}
Note
this will only return the first matching fruit in the string. So "foobarapplebanana"
will return "apple"
. If instead you want to return an array of strings, [ "apple", "banana" ]
, then return match
instead of match[0]
.
Answered By - maksymiuk
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.