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

如何获取父对象内的对象数组?xmlHttpRequest填充后结构异常

访问父对象中的嵌套子对象数组

看起来你已经成功把请求结果填充到父对象里了,从你描述的console.log输出结构来看,你的父对象里有一个键为0的属性,这个属性的值就是包含所有应用子对象的数组。要访问这些子对象其实很直接,我给你拆解一下:

先明确结构对应关系

假设你的父对象变量名叫parentObj,那:

  • parentObj[0] → 就是那个包含子对象的数组(也就是你看到的0: Array [{...}, {...}, ...])
  • parentObj[0][0] → 数组里的第一个应用对象(id: "1"那个)
  • parentObj[0][1] → 第二个应用对象,以此类推

实际代码示例

这里给你写个具体的操作例子,覆盖遍历和单个访问的场景:

// 假设这是你的父对象(已经填充了请求结果)
const parentObj = {};
// 模拟请求返回的结构和你描述的一致
parentObj[0] = [
  {id: "1", name: "application1", version: "1.0"},
  {id: "2", name: "application2", version: "1.0"},
  {id: "3", name: "application3", version: "1.0"}
];

// 1. 获取整个子对象数组
const applicationList = parentObj[0];

// 2. 遍历所有子对象,打印每个应用的信息
applicationList.forEach(app => {
  console.log(`ID: ${app.id},应用名: ${app.name},版本: ${app.version}`);
});

// 3. 单独访问某个子对象,比如第三个应用
const thirdApp = applicationList[2];
console.log(thirdApp.name); // 输出 "application3"

注意异步请求的时机

如果你是用XMLHttpRequest异步请求填充的父对象,一定要确保在请求完成后再去访问这个数组!比如把操作代码放在onload回调里,避免因为请求还没完成导致parentObj[0]是undefined:

const parentObj = {};
const xhr = new XMLHttpRequest();

xhr.open('GET', '你的接口URL', true);
xhr.onload = function() {
  if (xhr.status >= 200 && xhr.status < 300) {
    // 解析返回的JSON并填充到父对象
    parentObj[0] = JSON.parse(xhr.responseText);
    // 这里才能安全操作子对象数组
    const apps = parentObj[0];
    console.log(apps.length); // 输出子对象的数量
  }
};

xhr.send();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:11:13