复制
收藏
提问
简洁

this.dataPTR = this.dataPTR.map(item1 => { // 预先筛选和查找,避免在每个 map 调用中重复 const filteredList = resp.data.enrollChoosingDetailsAgencyList .filter(obj => obj.seniorBatch !== 0 && obj.seniorBatch !== 99); // 使用 forEach 并提前退出 item1.enrollChoosingSeniorRuleVoList.forEach((item, index) => { filteredList.forEach((item2,index)=>{ if(item1.seniorBatch === item2.seniorBatch && item1.seniorSub ===item2.seniorSub){ item.enrollCode = item2.enrollCode; item.enrollName = item2.enrollName; } }) }); // 返回新对象或原对象 return item1 });优化代码

214ea5705
0秒前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

优化 JavaScript 代码

  • 避免重复筛选:预先筛选 resp.data.enrollChoosingDetailsAgencyList 并存储结果,避免在 forEach 循环中重复筛选。2
  • 简化条件判断:在 forEach 循环中,使用 findsome 方法代替嵌套的 forEach 来简化条件判断。15
  • 使用箭头函数特性:由于箭头函数没有自己的 this,可以避免在回调函数中绑定 this2

重构后的代码示例

// 预先筛选并存储结果
const filteredList = resp.data.enrollChoosingDetailsAgencyList
  .filter(obj => obj.seniorBatch !== 0 && obj.seniorBatch !== 99);

// 使用 map 进行转换,并在必要时使用 find 简化条件判断
this.dataPTR = this.dataPTR.map(item1 => {
  // 查找匹配的 enrollCode 和 enrollName
  const matchedItem = filteredList.find(item2 => 
    item1.seniorBatch === item2.seniorBatch && item1.seniorSub === item2.seniorSub
  );

  // 如果找到匹配项,则更新 enrollCode 和 enrollName
  if (matchedItem) {
    item1.enrollCode = matchedItem.enrollCode;
    item1.enrollName = matchedItem.enrollName;
  }

  return item1;
});

此代码通过预先筛选列表并使用 find 方法简化了条件判断,提高了代码的可读性和性能。

你觉得结果怎么样?

以上内容由AI搜集生成,仅供参考

在线客服