我来C 2022-03-25 20:47 采纳率: 0%
浏览 82
已结题

给数组对象循环赋值不完全成功

问题遇到的现象和发生背景

封装了一个通用函数,用来处理服务端返回的数据, urls 和 list(模拟数据)。想通过比对 urls 和 list 的 id,将 urls 中 url 添加到 list 对应的对象中。外部调用函数通过 callback 取得处理后的 list。
但是实际输出发现,有部分返回的 list 数组对象中根本没有 url 字段,或者存在部分对象有 url 字段。urls 中的 id 是通过 list 请求返回的,所以两个数组中一定有相同的 id,urls 中的 url 如果没有值为 null。
想问造成这种结果的原因是什么?服务端返回的数据量可能比较大,会导致循环遍历还没有结束就直接返回原 list 值吗?

问题相关代码,请勿粘贴截图

      let urls = [{id:3,url:'http://xxx'},{id:1,url:'http://xxx'},{id:2,url:'http://xxx'}]
      let list = [{id:1,name:'张三'},{id:2,name:'李四'},{id:3,name:'王五'}]

      urls.forEach(way => {
        for (let item of list) {
          if (way.id === item.id) {
            item.url = way.url
            break
          }
        }
      })
      callback(list)
  • 写回答

1条回答 默认 最新

  • 小林在吗 2022-03-26 09:42
    关注

    数组对象循环要用for in ,或者你直接双重foreach,不要用forof循环

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月1日
  • 修改了问题 3月25日
  • 创建了问题 3月25日

悬赏问题

  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 C++行情软件的tick数据如何高效的合成K线
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答