javascript - 从这个 Array 检查中获得体面结果的最佳方法是什么?
问题描述
我试图获得一个不错的结果,我可以用它做点什么,但感觉我现在在“检查”函数中的方式实际上并没有返回一个表达式:
validate = () => {
const items = this.state.data;
const check = e => {
!e.error === undefined ? true : false;
};
const checkFields = items.some(check);
if (!checkFields) {
alert('form valid');
}
};
“检查”功能好用吗?
解决方案
该check
函数不返回任何内容。任何一个:
- 删除大括号,使其不再是代码块,而是返回值的表达式,或者
return
在表达式之前添加一个。
第二:
!
运算符优先于===
,所以!e.error === undefined
不按你的想法做。您可以使用括号,例如!(e.error === undefined)
,但为什么不只是e.error !== undefined
?
并且确实没有必要在其上应用三元运算符。它已经是一个布尔表达式,所以不用那个就用它? true : false
。
简而言之:
const check = e => e.error !== undefined;
关于整体功能validate
:使用alert
非常原始,不是最人性化的事情。您应该考虑将 CSS 样式应用于未通过验证的输入。
推荐阅读
- android - 使用 Android BLE Gatt 时如何接收重新连接通知
- linux - 无需桌面管理器即可显示的 Linux 绘图
- firebase - 在 Firebase 控制台中查看数据库
- javascript - 如何在 SVG 动画上获得最佳性能(鼠标悬停时 FPS 下降)
- java - 使用 websocket 获取数据流时的主要问题是什么?
- amazon-web-services - 通过 CLI 阻止所有对象在 S3 中的公共访问
- android - 如何解决 Flutter Activity 中 BOTTOM OVERFLOWED BY 84 PIXLES 的问题?
- python - GET请求后的Django DRF PUT请求ImageField
- matlab - 如何在 Matlab 中将 3D 路径数据绘制为条带
- angular - 如果我在订阅中多次订阅,第一次订阅中的 complete() 会等待吗?