Javascript 如何改变该方法的控制磁通量

Javascript 如何改变该方法的控制磁通量,javascript,arrays,variables,control-flow,Javascript,Arrays,Variables,Control Flow,我有以下代码: function validateRule(product, rule) { let idx = 4, finishIdx = Object.keys(Header).length; let isValid = true; //this is the control flux variable let ruleOptions = {}; if (!rule[2]) return {valid: false, opt

我有以下代码:

function validateRule(product, rule) {
        let idx = 4, finishIdx = Object.keys(Header).length;
        let isValid = true;  //this is the control flux variable
        let ruleOptions = {};
        if (!rule[2]) return {valid: false, options: null};
        if (!categoryValid(product, rule[2].split(';'))) isValid = false;

        while (++idx <= finishIdx && isValid) {

            if (rule[idx] === "" || rule[idx] == null) continue;
            let tagName = Header[idx];

            let columnArgs = rule[idx].split(';').map(function(item) { return item.trim() });
            columnArgs.forEach(function(columnValue) {
                let resp = validateValue(product[tagName], columnValue);
                if (!resp.result) {
                    isValid = false;
                } else {
                    ruleOptions[tagName] = resp.options;
                }
            });
        }
        return {valid: isValid, options: ruleOptions};
    }
函数验证程序(产品、规则){
让idx=4,finishIdx=Object.keys(Header.length);
设isValid=true;//这是控制流量变量
让ruleOptions={};
if(!rule[2])返回{valid:false,options:null};
如果(!categoryValid(产品,规则[2].split(“;”))有效=false;
while(++idx如果在循环列时发现无效值,那么如何从函数返回“false”

这样,如果您发现一个无效的值,您只需退出函数,字段valid为false,如下所示:

返回{valid:false,options:ruleOptions};

如果到达函数的末尾,则表示所有值都有效,只需返回


return{valid:true,options:ruleOptions};

这是一个好方法,我不记得了,但是在forEach函数内部返回不起作用,我不得不改为for循环,谢谢!