Javascript 有没有办法在es6过滤器或lodash中获得相同的结果?

Javascript 有没有办法在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 ){

尝试根据rejectMessage数组中的settlementCode从数组中删除元素,我觉得使用ES6或lodash会更好

有人能帮我使用这种方法吗

资料

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"
    }
  }
]

你是说像这样吗

从“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"
    }
  }
]