如果对象rejectMessage包含我在checkErrorCodes方法中指定的代码,则尝试返回布尔值。它应该返回true,如果settlementCode匹配不返回的布尔值,则返回整个isError函数。有什么想法或更好的方法来完成这件事吗?
transformPrice.js
function transformPrice(oldDrugPrice) {
let drugPrice = {
"drugName": "Metformin",
"mailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "90.0",
"rejectMessage": [{
"settlementCode": "99",
"settlementDesc": "Not Covered: Call us - System could not process your request. Call us at the toll-free number on your benefit ID card.||Sin cobertura: Llámenos - El sistema no pudo procesar su solicitud. Llame al número gratuito que figura en su tarjeta de identificación de beneficios."
}]
},
"retailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "30.0"
}
},
if (drugPrice.retailPrice.rejectMessage || drugPrice.mailPrice.rejectMessage.length ){
const retailRejecrMsg = drugPrice.retailPrice.rejectMessage;
const mailPriceMsg = drugPrice.mailPrice.rejectMessage;
const retailErr = isErrorPresent(retailRejecrMsg);
const mailErr =isErrorPresent(mailPriceMsg);
}
return drugPrice;
}
isErrorPresent方法
function isErrorPresent (price) {
const isError = function (element) {
const bRet = checkErrorCodes(element);
return (element.hasOwnProperty('settlementCode') && bRet)
}
return isError;
}
checkErrorCodes方法
function checkErrorCodes(el){
let bRet = false;
const errorCodes = [
10015,
2356,
225,
224,
99
]
for (const err of errorCodes){
if (err === el.settlementCode){
bRet = true;
}
}
return bRet;
}
发布于 2019-05-23 03:51:10
调用is error方法怎么样?
const mailErr =isErrorPresent(mailPriceMsg).call();
或者更改isErrorPresent方法
function isErrorPresent (price, element) {
const bRet = checkErrorCodes(element);
return (element.hasOwnProperty('settlementCode') && bRet)
}
发布于 2019-05-23 03:51:21
在函数isErrorPresent中,您永远不会调用isError函数。要调用它,您应该:
return isError(price)
这将调用带有参数price的函数,因此在您的示例中,它将如下所示:
function isErrorPresent (price) {
const isError = function (element) {
const bRet = checkErrorCodes(element);
return (element.hasOwnProperty('settlementCode') && bRet)
}
return isError(price);
}
发布于 2019-05-23 03:52:08
你可以使用类似这样的东西:
function isErrorPresent (obj) {
if(checkErrorCodes(obj) && obj.hasOwnProperty('settlementCode')){ //error code checked
return obj; //return obj
}
return false; //no error found
}
function checkErrorCodes(el){
const errorCodes = [
10015,
2356,
225,
224,
99
]
return errorCodes.includes(el.settlementCode);
}
这就是我处理这个问题的方式。希望这能有所帮助。
https://stackoverflow.com/questions/56263728
复制相似问题