Пытаясь удалить элемент из массива на основе paymentCode в массиве rejectMessage, я чувствую, что это может быть намного лучше с ES6 или lodash.
Может кто-нибудь помочь мне использовать этот подход?
данные
const data = [
{
"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"
}
},
{
"drugName": "CALCIUM",
"mailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "90.0"
},
"retailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "30.0"
}
}
]
transform.js
function transformPrice(drugPrice) {
if (drugPrice.retailPrice.rejectMessage.length || drugPrice.mailPrice.rejectMessage.length ){
const retailRejecrMsg = drugPrice.retailPrice.rejectMessage;
const mailRejectMsg = drugPrice.mailPrice.rejectMessage;
const retailErr = isErrorPresent(retailRejecrMsg);
const mailErr = isErrorPresent(mailRejectMsg);
}
if(retailErr){
delete drugPrice.retailPrice;
}
if( mailErr){
delete drugPrice.mailPrice;
}
return drugPrice;
}
function isErrorPresent (price) {
const isError = function (element) {
const bRet = checkErrorCodes(element);
return (element.hasOwnProperty('settlementCodes') && bRet)
}
return price.some(isError);
}
function checkErrorCodes(el){
let bRet = false;
const errorCodes = [
10015,
2356,
225,
224,
99
]
for (const err of errorCodes){
if (err === ele.settlementCode){
bRet = true;
}
}
return bRet;
}
transformPrice(data);
ожидаемый результат
[{
"drugName": "Metformin",
"retailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "30.0"
}
},
{
"drugName": "CALCIUM",
"mailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "90.0"
},
"retailPrice": {
"copayEmployer": "N/A",
"totalQuantity": "30.0"
}
}
]