You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript/Fetch循环提取数据失败问题求助

问题描述

使用JavaScript的Fetch API获取数据后,单独执行console.log(data['UsersInfo'][0].username)能正常打印用户名,但用for循环提取对应字段时失败。控制台日志显示data.length为undefined,JSON数据结构中,data是包含UsersInfo数组的对象,UsersInfo内存储用户列表。

相关代码:

document.addEventListener('DOMContentLoaded', function() {
      let user = 'example';
      fetch(`/jsonresponse/${user}`)
        .then(response => response.json())
        .then(data => {

          // 这行可正常输出用户名
          console.log(data['UsersInfo'][0].username)

          // 循环无法正常工作
          for (let i = 0; i < data.length; i++) {
            console.log(data['UsersInfo'][i].username);
          }
        });
解决提示
  • 错误根源:data是对象而非数组,data.length会返回undefined,导致循环条件i < undefined不成立,循环直接跳过。
  • 修正方案:循环目标改为data['UsersInfo']数组,用它的长度作为循环终止条件:
// 正确的for循环写法
for (let i = 0; i < data['UsersInfo'].length; i++) {
  console.log(data['UsersInfo'][i].username);
}
  • 更简洁的替代写法:使用数组的forEach方法遍历,代码可读性更强:
data['UsersInfo'].forEach(userItem => {
  console.log(userItem.username);
});

内容的提问来源于stack exchange,提问作者greensky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:39:17