This might be a simple duplicate question but I couldn't find any solution that resolve my case below. Please help me out! :)
I'm looking for a string method to check if the value matches a specific string and return that result.
- I'm using
create-react-appand I have a<select>dropdown for users to filter dishes with a specific price range - This dropdown has 3 values which are strings: "$", "$$" and "$$$"
I'm currently using the .includes method and not getting the result I want because it includes all the results that contain a character from the string. (If users choose "$", it will also return the results including "$$" and "$$$")
-> I only want them to return the results with exactly the value of strings above.
So what to use instead of .includes ?
// Initial states:
const [foodList, setFoodList] = useState([])
const [foodName, setFoodName] = useState('')
const [isVegetarian, setIsVegetarian] = useState('')
const [priceRange, setPriceRange] = useState('$')
const [textSearch, setTextSearch] = useState('')
const [priceDropdown, setPriceDropdown] = useState('')
const [vegDropdown, setVegDropdown] = useState('')
// Search.js:
const newSearch = props.foodList.filter((value) => {
return (
value.foodName.toLowerCase().includes(textSearch.toLowerCase()) &&
// What to use instead of .includes here?
value.priceRange.toLowerCase().includes(priceDropdown.toLocaleLowerCase())
&& value.isVegetarian.includes(vegDropdown.toLowerCase())
)
}
)
"$$$"does include"$".===on just thepriceRangeand it didn't work. But the solution below has me trying onisVegetarianalso and it works now :)