![](/img/trans.png)
[英]Check if all the values in array of object is equal to false and return true in react
[英]react on change check if equal to array of object
我有输入和我需要的对象数组,当我输入它会显示该对象。 “airplaneCompany”是我需要比较的对象属性,只有当输入等于“airplaneCompany”时,它才会通过过滤器方法返回它,但我需要 evrey char,它会检查它,如果对象以"a" 它将显示这个对象
const [txtInp, setTxtInp] = useState("");
const showFlight = users.filter((user) => {
return user.airplaneCompany == txtInp;
});
{showFlight.map((user, index) => {
const { id, airplaneCompany, passenger } = user;
return (
<div className="flightContainer" key={index}>
<div>{id}</div>
<div>{airplaneCompany}</div>
<div>{passenger}</div>
</div>
);
})}
我认为您可以使用 .filter 函数来检查飞机公司是否从用户输入开始?
就像是
返回 user.airplaneCompany.indexOf(txtInp) === 0;
您可以使用@Patrick 答案,但 JavaScript 有自己的startsWith函数可以使用。
此外,请考虑使用useMemo
挂钩包装过滤器,以便仅在输入更改时运行它,而不是在每次渲染时运行。
const showFlight = useMemo(() => {
return users.filter((user) => {
return user.airplaneCompany == txtInp;
});
}, [txtInp]);
只需使用正则表达式。 只需放置输入值,例如/^airplaneCompany$/
const wrongInputText = 'q' const rightInputText = 'airplaneCompany' console.log('wrong', 'return value=', /^airplaneCompany$/.test(wrongInputText)) console.log('right', 'return value=',/^airplaneCompany$/.test(rightInputText))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.