gpt4 book ai didi

javascript - 如何改变该方法的控制通量变量

转载 作者:行者123 更新时间:2023-12-02 23:00:11 24 4
gpt4 key购买 nike

我有以下代码:

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};
}

正如你所看到的,该方法将控制流变量“isValid”初始化为true,我应该将初始化值更改为false但保持相同的逻辑,我一直在绞尽脑汁寻找不使用数组的解决方案,但我认为这是不可能的,对吗?

根据我的理解,如果没有任何值被证明无效(进入 block !resp.result),则 isValid 应该为 true。

有人可以帮我吗?我需要默认起始值​​为 false,并且仅当其对所有 tagNames 的所有 columnValues 都有效时才返回有效 true。

我认为我需要一个数组来存储所有值的有效状态,然后查看是否有任何值是 false,但正在寻找更好的方法来做到这一点,也许我遗漏了一些东西。

最佳答案

如果在循环列时发现无效值,函数会返回“false”吗?

这样,如果您发现一个无效值,您只需退出该函数,并将字段有效设置为 false,如下所示:

return {valid: false, options:ruleOptions};

如果到达函数末尾,则意味着所有值都有效,您只需返回

return {valid: true, options:ruleOptions};

关于javascript - 如何改变该方法的控制通量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com