[英]What is necessary to make this JS conditional formula work?
我有这个用于检测超出范围批号的 JS 公式,我的老板报告说它总是向他们返回 No,但在我的情况下它总是返回 Yes。 公式如下:
drug_administrated = 'Azacitidine'
kit_1_d1 = 1100
if
({drug_administrated} = 'Azacitidine' && ( {kit_1_d1} < 1000 || {kit_1_d1} >1116)) {
"No";
}else if
({drug_administrated} = 'Vidaza' && ({kit_1_d1} < 3000 || {kit_1_d1} > 3096) ) {
"No";
}else {
"Yes";
}
在这种情况下,它应该返回 Yes 并且它确实但是如果我放置例如
drug_administrated = 'Azacitidine'
kit_1_d1 = 100
if
({drug_administrated} = 'Azacitidine' && ( {kit_1_d1} < 1000 || {kit_1_d1} >1116)) {
"No";
}else if
({drug_administrated} = 'Vidaza' && ({kit_1_d1} < 3000 || {kit_1_d1} > 3096) ) {
"No";
}else {
"Yes";
}
它应该返回 No,但仍然返回 Yes。
我应该承认,我是一个完全自学的 js 学徒,我真的很感激你的帮助。 谢谢
您提供的代码示例中存在多个语法问题:
1) 使用适当的相等比较运算符,大多数情况下您应该使用===
来比较被比较对象的值和类型。 您正在使用一个赋值运算符来初始化一个值。
2) 不要将变量包裹在{}
3)您实际上并没有在任何地方返回值。
function check(drug, kit) { // use correct comparison operator === and dont wrap the var in {} if (drug === 'Azacitidine' && (kit < 1000 || kit > 1116)) { // return a value to process return "No"; } else if (drug === 'Vidaza' && (kit < 3000 || kit > 3096)) { return "No"; } else { return "Yes"; } } console.log(check('Azacitidine', 100)); console.log(check('Azacitidine', 1000)); console.log(check('Vidaza', 1000)); console.log(check('Vidaza', 3000));
强烈建议您查看MDN上的文档以帮助学习该语言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.