【问题标题】:How to check every value meets condition in Javascript function?如何检查每个值是否符合 Javascript 函数中的条件?
【发布时间】:2022-01-01 02:00:36
【问题描述】:

我正在构建一个 Vuejs 和 Laravel 应用程序,并有一个名为“问题”的数据列表,我正在尝试遍历该列表,看看问题中的答案值是否不等于 null。如果即使单个问题的答案值为空,我想阻止表单提交并使用警报告诉用户填写所有问题。

我遇到的问题是,即使尚未填写所有答案,我仍然会从我的函数中在控制台中记录“成功”。

谁能指出我哪里出了问题?

这是我的数据列表:

如您所见,一些答案字段为空,而如果它们被填写,则那里有数据。

这是我绑定到表单提交按钮的提交函数:

methods: {
        submitPressed(e){
            console.log(this.questions);
            this.questions.forEach(question => {
                question.questions.every(q => {
                    if(q.answer !== null){
                        console.log('success');
                        // this.submit();
                    } else {
                        e.preventDefault();
                        console.log('more to fill out');
                    }
                })
            })}
                
        
    },

提前致谢!

【问题讨论】:

    标签: javascript laravel forms vue.js loops


    【解决方案1】:

    您应该在every 中返回一个真实值。

    methods: {
        submitPressed(e){
            this.questions.forEach(question => {
                const check = question.questions.every(q => {
                    if (q.answer !== null) {
                        return true;
                    } else {
                        return false;
                    }
                });
    
                if (check) {
                    // every answer has been filled
                } else {
                    // some answers are missing
                }
            })
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以通过几种不同的方式进行操作。一种是在数组上使用some()

      methods: {
         submitPressed(e) {
            console.log(this.questions);
            if (this.questions.some(q => !q.answer)) {
               e.preventDefault();
               console.log('more to fill out');
            } else {
               console.log('success');
               // this.submit();
            }
         }
      },
      

      更多()的详细信息可以在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some找到

      【讨论】:

        猜你喜欢
        • 2020-10-27
        • 2021-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2018-03-10
        • 1970-01-01
        • 2014-06-28
        相关资源
        最近更新 更多