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

JavaScript数组中从子菜单获取对象遇异常,输出出现undefined

问题分析与解决

你的代码输出不符合预期的核心原因是:第一个菜单项的submenu是数组类型,而非单个对象,直接访问e.title(此时e是数组)会返回undefined。要实现需求,需要遍历submenu数组取出每个子项的title;没有submenu的项则直接输出自身的title。

修正后的打印代码

const menu = [
    {
        title: "1",
        submenu: [
            { title: 'gilbert lua' },
            { title: 'pemai' },
        ],
    },
    { title: "2" },
    { title: "3" }
];

menu.forEach((item) => {
    if (item.submenu) {
        // 遍历子菜单数组,逐个打印子项的title
        item.submenu.forEach(subItem => {
            console.log(subItem.title);
        });
    } else {
        // 无submenu时直接打印自身title
        console.log(item.title);
    }
});

输出结果

gilbert lua
pemai
2
3

如果需要将结果收集到数组而非直接打印,可使用以下代码:

const result = [];
menu.forEach((item) => {
    if (item.submenu) {
        item.submenu.forEach(subItem => {
            result.push(subItem.title);
        });
    } else {
        result.push(item.title);
    }
});
console.log(result); // 输出:["gilbert lua", "pemai", "2", "3"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:20:19