尝试将 lodash 代码转换为 es6 方法;它抛出错误?

所以下面注释掉的代码在 lodash 中工作只是想转换成 es6 以使其更简单和更清晰的代码它的抛出错误一些是未定义的。有什么帮助吗?


主文件


        const rejectMessagerrors = [45,67,87];

        const drug = [{

            "isBrand": true,

            "drugName": "Lipitor",

            "specialtyPrice": {}

          },

          {

            "isBrand": false,

            "drugName": "Atorvastatin Calcium",

            "drugStrength": "80mg",

            "drugForm": "Tablet",

            "mailPrice": {

              "totalQuantity": 90,

              "rejectMessage": [{

                "settlementCode": "45",

                "settlementDesc": "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": {}

          }

        ];


            function priceFilterHandler(drug) {

                // const pricePath = ['mailPrice.rejectMessage', 'retailPrice.rejectMessage'];

  //

  // _.forEach(pricePath, function (path) {

  //   const rejectMsg = _.get(drug, path);

  //   const hasCode = rejectMsg && rejectMsg.find(i => !!~rejectMessagerrors.indexOf(+i.settlementCode));

  //   hasCode && delete drug[path.split('.').shift()];

  // });

  const retailHasCode = findErrCode(item.retailPrice.rejectMessage);

  const mailHasCode = findErrCode(item.mailPrice.rejectMessage);


  if (retailHasCode) {

    delete item.retailPrice;

  }


  if (mailHasCode) {

    delete item.mailPrice;

  }


  return item;

            }


   const filteredPrices = _.map(drug, priceFilterHandler);

findErr 方法


let findErrCode = data => {

  data.some(i => rejectMessagerrors.includes(+i.settlementCode));

}



慕姐8265434
浏览 130回答 1
1回答

白衣非少年

以下是您在代码中遇到的一些问题findError函数没有返回值某些元素没有mailPrice or retailPrice您尝试访问的位置item.mailPrice.rejetcMessageconst rejectMessagerrors = [45, 67, 87];const drug = [{"isBrand": true,"drugName": "Lipitor","specialtyPrice": {}},{"isBrand": false,"drugName": "Atorvastatin Calcium","drugStrength": "80mg","drugForm": "Tablet","mailPrice": {"totalQuantity": 90,"rejectMessage": [{"settlementCode": "45","settlementDesc": "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": {}}];let findErrCode = data => data && data.some(i => rejectMessagerrors.includes(+i.settlementCode));let op = drug.map(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;})console.log(op)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript