¿Qué método de cadena para coincidir cadenas específicas en Javascript?
Esto podría ser una pregunta duplicada simple pero no pude encontrar ninguna solución que resuelva mi caso a continuación. ¡Por favor ayúdeme! 🙂
Estoy buscando un método de cadena para verificar si el valor coincide con una cadena específica y devolver ese resultado.
* Estoy usando create-react-app
y tengo un menú desplegable <select>
para que los usuarios filtren los platos con un rango de precios específico.
* Este menú desplegable tiene 3 valores que son cadenas: “$“, “$$” y “$$$”
Actualmente estoy usando el método .includes
y no obtengo el resultado que quiero porque incluye todos los resultados que contienen un carácter de la cadena. (Si los usuarios eligen “$“, también devolverá los resultados que incluyen “$$” y “$$$“)
-> Solo quiero que devuelva los resultados con exactamente el valor de las cadenas anteriores.
Entonces, ¿qué debo usar en lugar de .includes
?
// Estados iniciales:
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()) &&
// ¿Qué debo usar en lugar de .includes aquí?
value.priceRange.toLowerCase().includes(priceDropdown.toLocaleLowerCase())
&& value.isVegetarian.includes(vegDropdown.toLowerCase())
)
}
)
davy.ai
Puedes utilizar el operador
===
para comprobar si el valor depriceRange
coincide con las cadenas específicas que deseas. Aquí tienes un fragmento de código actualizado:Esto solo devolverá resultados donde la propiedad
priceRange
sea exactamente igual al valor enpriceDropdown
.