Javascript 有没有办法在es6过滤器或lodash中获得相同的结果?
尝试根据rejectMessage数组中的settlementCode从数组中删除元素,我觉得使用ES6或lodash会更好 有人能帮我使用这种方法吗 资料 transform.jsJavascript 有没有办法在es6过滤器或lodash中获得相同的结果?,javascript,ecmascript-6,lodash,Javascript,Ecmascript 6,Lodash,尝试根据rejectMessage数组中的settlementCode从数组中删除元素,我觉得使用ES6或lodash会更好 有人能帮我使用这种方法吗 资料 transform.js function transformPrice(drugPrice) { if (drugPrice.retailPrice.rejectMessage.length || drugPrice.mailPrice.rejectMessage.length ){
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"
}
}
]
你是说像这样吗 从“lodash”进口; const drugPrice=data.mapitem=>{ 常量错误代码=[10015、2356、225、224、99]; 常量f=[mailPrice.rejectMessage,retailPrice.rejectMessage]; f、 forEachpath=>{ const rejectMsg=\ u0.getitem,路径; 如果拒绝MSG{ 常量y=路径分割..移位; const hascodeorError=rejectMsg.findi=>{ return!!~errorCodes.indexOf+i.settlementCode ||!!~i.settlementDesc.indexOf':'; }; hascode或错误&删除项目[y]; } }; 退货项目; };
我觉得在ES6时代我写了很多代码。。您是从将来发布的吗?\如果需要就地删除,请删除。如果可以重新分配数组,请删除。\ filter/。filter。我没有看到任何引用数据的代码。您忘记发布代码了吗?此输入的预期输出是什么?基于rejectMessage数组中的settlementCode从数组中删除元素基于什么值?@adiga如果对象中的settlementCode与我在checkErrorCode MethodObject中的errorCode匹配,则如果drug retail或mailPrice具有rejectMessage数组,并且它包含retail/mail price应该包含的错误代码,则该对象会是这样的被移除。[{药品名称:二甲双胍,邮价:{copayEmployer:N/A,总数量:90.0,拒绝信息:[{结算代码:99,结算ESC:Not Covered:Call us-os.}],零售价:{copayEmployer:N/A,总数量:30.0}]@hussain,上面的代码与您描述的一样工作。是否可以在此代码之上为rejectMessage中的settlementDesc添加另一个逻辑,其字符串不带:,省略rejectMessage的该条目。如果rejectMessage中省略了所有条目,则从药品价格响应中删除rejectMessage条目。@hussain,再次。您希望删除settlementDesc属性,以防它没有:inside。如果rejectMessage属性为空数组,则删除它?如果SettlementDisc为,则我要删除rejectMessage对象的一个更正是:应该从rejectMessage数组中删除该条目
[{
"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"
}
}
]