Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
What string method for matching specific strings in Javascript

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-app and 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())
            )
          }
      )

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

It looks like a standard === is going to be sufficient for your needs, since you're not checking if a value includes the filter selection, but that it is exactly the selection. (I suspect you'll want the same on the isVegetarian option, too.

const newSearch = props.foodList.filter((value) => {
  return (
    value.foodName.toLowerCase().includes(textSearch.toLowerCase()) &&
    value.priceRange.toLowerCase() === priceDropdown.toLocaleLowerCase() &&
    value.isVegetarian === vegDropdown.toLowerCase()
  )
});

Also, as the comments mentioned, try to keep your example as minimal as possible to reproduce the issue - it's always a balance between context and simplicity. In this case, though, showing a small data structure of foodList and the newSearch method (with a little explanation) would probably be sufficient.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!