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

如何访问JSON内嵌套结构数据 现有axios代码无输出求排查

问题排查

你代码的核心问题出在listShareholders函数的内层循环判断条件上:

  • 你写的j<a[i].shareholders是错误的,a[i].shareholders是股东数组对象,不是数字长度,这个比较结果永远为false,导致内层循环从未执行,最终返回空数组没有输出。
  • 次要优化点:循环变量i和j没有使用let/var声明,会污染全局作用域,建议补上声明。
  • 可选补充:可以给异步调用加异常捕获,避免网络请求失败等情况无错误提示。

修正后代码

const axios = require('axios')
require("util").inspect.defaultOptions.depth = null;
async function getStocks(){
    const { data } = await axios.get('https://gist.githubusercontent.com/graffixnyc/8c363d85e61863ac044097c0d199dbcc/raw/7d79752a9342ac97e4953bce23db0388a39642bf/stocks.json')
    return data
}
async function listShareholders() {
    let c=[]
    let a = await getStocks();
    // 外层循环补全let声明
    for(let i=0;i<a.length;i++){
        // 内层循环条件加上.length,补全let声明j
        for(let j=0;j<a[i].shareholders.length;j++){
            c.push(a[i].shareholders[j].userId)
        }
    }
    return c 
    
}
async function bc(){
    const address = await listShareholders()
    console.log(address)
} 

// 调用加异常捕获
bc().catch(err => console.error('运行出错:', err))

运行效果

执行后会输出所有股东的userId组成的数组,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:27:03