一颗青柠~ 2021-12-30 11:27 采纳率: 71.4%
浏览 51
已结题

js怎么和预期的结果不一样

let datamap = [{alwaysReceive:true,origin:'1',target:'2'},{alwaysReceive:true,origin:'2',target:'5'},{alwaysReceive:false,origin:'3',target:'2'}]
let source = [{id:'1',v:'2',t:"9"},{id:'2',v:'88',t:"2"},{id:'3',v:'0',t:"4"}]
var result = [];
  var alwaysReceiveList = []
  datamap.forEach(dmitem=>{
      var tmp = source.find(sitem=>{
          return  dmitem.origin === sitem.id
      });
      console.log(tmp);
      
      if(tmp){
          tmp.id = dmitem.target;
          console.log('1',tmp);
          
          if(dmitem.alwaysReceive){
              alwaysReceiveList.push(tmp) 
          }
          result.push(tmp);
      }
  });
  console.log(result,alwaysReceiveList);

我想要的是result应该为 result:[{id:'2',v:'2',t:"9"},{id:'5',v:'88',t:"2"},{id:'3',v:'0',t:"4"}]

  • 写回答

1条回答 默认 最新

  • bekote 2021-12-30 11:45
    关注
    
    let datamap = [{alwaysReceive:true,origin:'1',target:'2'},{alwaysReceive:true,origin:'2',target:'5'},{alwaysReceive:false,origin:'3',target:'2'}]
    let source = [{id:'1',v:'2',t:"9"},{id:'2',v:'88',t:"2"},{id:'3',v:'0',t:"4"}]
    var result = [];
      var alwaysReceiveList = []
      datamap.forEach(dmitem=>{
          var tmp = source.find(sitem=>{
              return  dmitem.origin === sitem.id
          });
          if(tmp){
              //用另外一个变量拷贝,不然会改动到source里的值
              var ttmp = Object.assign({}, tmp);
              ttmp.id = dmitem.target;
              if(dmitem.alwaysReceive){
                  alwaysReceiveList.push(ttmp) 
              }
              result.push(ttmp);
          }
      });
      console.log(result,alwaysReceiveList);
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效