为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐8265434 2021-06-15 17:46:01
所以下面注释掉的代码在 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));}
查看完整描述

1 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

以下是您在代码中遇到的一些问题

  • findError函数没有返回值

  • 某些元素没有mailPrice or retailPrice您尝试访问的位置item.mailPrice.rejetcMessage

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


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)


查看完整回答
反对 回复 2021-06-18
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信