[英]How to check if array elements contain string?
试图省略包含字符串的元素,它仍会返回包含Not Covered
字符串的mailPrice
,对修复Not Covered
任何想法吗?
数据
const drug = {
"isBrand": false,
"drugName": "Atorvastatin Calcium",
"drugStrength": "80mg",
"drugForm": "Tablet",
"mailPrice": {
"totalQuantity": 90,
"rejectMessage": [{
"settlementCode": "99",
"settlementDesc": "Not Covered Sorry, the system is temporarily:Lo sentimos,Intente(Código de error 85)"
}]
},
"retailPrice": {
"totalQuantity": 30,
"rejectMessage": [{
"settlementCode": "99",
"settlementDesc": "Sorry, the system is temporarily:Lo sentimos,Intente(Código de error 85)"
}]
},
"specialtyPrice": {}
};
main.js
const priceFilterHandler = (item) => {
const retailHasCode = findErrCode(item.retailPrice && item.retailPrice.rejectMessage);
const mailHasCode = findErrCode(item.mailPrice && item.mailPrice.rejectMessage);
if (retailHasCode) {
delete item.retailPrice;
}
if (mailHasCode) {
delete item.mailPrice;
}
return item;
}
const findErrCode = (data) => data && data.some((item) =>
item.settlementDesc.includes(!'Not Covered')
);
console.log(priceFilterHandler(drug));
预期产量
在下面的响应中省略了mailPrice,因为它的rejectMessage包含字符串Not Covered
{
"isBrand": false,
"drugName": "Atorvastatin Calcium",
"drugStrength": "80mg",
"drugForm": "Tablet",
"retailPrice": {
"totalQuantity": 30,
"rejectMessage": [{
"settlementCode": "99",
"settlementDesc": "Sorry, the system is temporarily:Lo sentimos,Intente(Código de error 85)"
}]
},
"specialtyPrice": {}
};
您是否在寻找这个: https : //jsfiddle.net/5cnqwfgu/1/
Object.entries(drug).forEach(entry => {
if(typeof entry[1] === "object") {
if(entry[1]['rejectMessage'] && entry[1]['rejectMessage'].length > 0 && entry[1]['rejectMessage'][0]['settlementDesc'].includes('Not Covered')){
delete drug[entry[0]];
}
}
});
console.log(drug);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.