Javascript 如何在JS中检查null并基于此实现逻辑?
我有基于版本的Javascript 如何在JS中检查null并基于此实现逻辑?,javascript,angular,ecmascript-6,null,Javascript,Angular,Ecmascript 6,Null,我有基于版本的parseNotAvailable函数有一些逻辑,所以我有作为版本2的惩罚,但我需要有与版本1相同的逻辑,所以我尝试传递为null以获得0,但它不工作并抛出错误 有没有更好的方法来完成上述任务 main.js let newPrice = { copayEmployer: parseNotAvailable('N/A', 1), penalties: parseNotAvailable('N/A', null), seco
parseNotAvailable
函数有一些逻辑,所以我有作为版本2的惩罚
,但我需要有与版本1相同的逻辑,所以我尝试传递为null以获得0,但它不工作并抛出错误
有没有更好的方法来完成上述任务
main.js
let newPrice = {
copayEmployer: parseNotAvailable('N/A', 1),
penalties: parseNotAvailable('N/A', null),
secondaryClaimNumber: parseNotAvailable('N/A',2)
};
function parseNotAvailable(value, version) {
if ((value === 'N/A' || value === 'n/a') && (version || version === 1)) {
return 0;
} else if ((value === 'N/A' || value === 'n/a') && version === 2) {
return null;
} else {
return parseFloat(value);
}
};
// console.log(parseNotAvailable('N/A', 1));
console.log(newPrice);
预期结果
{ copayEmployer: 0, penalties: 0, secondaryClaimNumber: null }
使用上面的代码返回
{ copayEmployer: 0, penalties: NaN, secondaryClaimNumber: 0 }
在parseNotAvailable('N/A',null)
版本为null
,如果语句na转到else语句返回parseFloat(值),则不会传递代码>
在parseNotAvailable('N/A',2)
中,版本是2
,如果语句||(value | | value==1)
和返回0代码>
如果((value==“N/A”| value==“N/A”)和((version | version==“1))
应该是如果((value==“N/A”| value==“N/A”)和(!version | version==“1))
您的代码正在流向else
块并尝试parseInt(N/A”),这显然是NaN
。你可能想重新考虑一下你在那里的情况。我在代码中添加了一个简单的isNaN
检查,您可以看到:
试试看{
让newPrice={
公司雇员:不可用('N/A',1),
惩罚:parseNotAvailable('N/A',null),
第二个索赔编号:parseNotAvailable('N/A',2)
};
console.log(newPrice);
}捕捉(错误){
控制台错误(err)
}
函数parseNotAvailable(值、版本){
如果((值=='N/A'| |值=='N/A')&&(版本| |版本===1)){
返回0;
}else if((值=='N/A'| |值=='N/A')&&version==2){
返回null;
}否则{
//在此处检查NaN值-如果您设定了流量控制条件,则可能不需要该值
如果(isNaN(值)){
抛出`${value}为NaN`;
}
返回浮点(值);
}
};代码>