首页 > 解决方案 > 从这个 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');
        }
    };

“检查”功能好用吗?

标签: javascriptarraysreactjs

解决方案


check函数不返回任何内容。任何一个:

  • 删除大括号,使其不再是代码块,而是返回值的表达式,或者
  • return在表达式之前添加一个。

第二:

!运算符优先于===,所以!e.error === undefined不按你的想法做。您可以使用括号,例如!(e.error === undefined),但为什么不只是e.error !== undefined

并且确实没有必要在其上应用三元运算符。它已经是一个布尔表达式,所以不用那个就用它? true : false

简而言之:

const check = e => e.error !== undefined;

关于整体功能validate:使用alert非常原始,不是最人性化的事情。您应该考虑将 CSS 样式应用于未通过验证的输入。


推荐阅读