qstat -j *
这是一些错误的情况
if (firstPositionCpc && (firstPosition > 0 && firstPositionCpc <= maxCPC)) {
var newCPC = firstPositionCpc;
} else if (topOfPageCpc && (topOfPageCpc > 0 && topOfPageCpc <= maxCPC)) {
var newCPC = topOfPageCpc;
} else if (firstPageCpc && (firstPageCpc > 0 && firstPageCpc <= maxCPC )) {
var newCPC = firstPageCpc;
} else {
var newCPC = minCPC;
}
此处KeywordIdReport :197857118477
campaignName :BP 2015 QC (FR)
maxCPC : 3.00
OldCPC :0.46
firstPositionCpc : --
topOfPageCpc : 0.46
firstPageCpc : 0.05
NewCPC : --
需要是一个数字。因此,NewCPC
,firstPositionCpc
和topOfPageCpc
需要存在并且是一个数字。
firstPageCpc
此处KeywordIdReport :97483945
campaignName :BP 2015 QC (FR)
maxCPC: 3.00
OldCPC :1.96
firstPositionCpc : 4.28
topOfPageCpc : 1.68
firstPageCpc : 0.85
NewCPC : 4.28
需要低于或等于NewCPC
。通常情况下,maxCPC
的答案应为1.68
,而不是4.28
。
我如何修复if语句链以便修复错误的场景?
现在改进之后,我怎么能说NewCPC
,firstPositionCpc
和topOfPageCpc
的类型存在并且需要是一个数字?
答案 0 :(得分:1)
因此,firstPositionCpc,topOfPageCpc和firstPageCpc需要存在并且是一个数字。
鉴于您有3次比较,上述内容并没有多大意义,所以我的答案将依赖于您希望firstPosition > 0
的假设。
所以我需要检查一个值类型是否为数字,以及该数字是否在某个范围内,因此请使用您的第一个if语句:
if (firstPositionCpc && (firstPosition > 0 && firstPositionCpc <= maxCPC)) {
var newCPC = firstPositionCpc;
}
我会将其更改为以下内容:
if(typeof(firstPositionCpc) == 'number' && firstPositionCpc <= maxCPC && firstPosition > 0){....}
typeof()
读取参数的类型并返回指示值的字符串。
请参阅此处https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof