如何获取父对象内的对象数组?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
相关产品推荐
相关产品推荐

