Javascript 在json对象上使用$.each语句时,我会得到一个错误

Javascript 在json对象上使用$.each语句时,我会得到一个错误,javascript,json,each,Javascript,Json,Each,在json对象上使用$.each语句时,我会得到一个“UncaughtTypeError:Cannotreadproperty”length“of undefined”。我知道我的$。每条语句都会导致它,因为当我对它进行注释时,console.log会按预期返回[Object,Object,Object]。我要做的是遍历对象并返回title的值 $(function () { var MENU = [ { 'title': 'Item 1', 'subme

在json对象上使用$.each语句时,我会得到一个“UncaughtTypeError:Cannotreadproperty”length“of undefined”。我知道我的$。每条语句都会导致它,因为当我对它进行注释时,console.log会按预期返回[Object,Object,Object]。我要做的是遍历对象并返回title的值

$(function () {
var MENU = [
    {
        'title': 'Item 1',
        'submenu': null
    },
    {
        'title': 'Item 2',
        'submenu': null
    },
    {
        'title': 'Item 3',
        'submenu': [
            {
                'title': 'Sub 1',
                'submenu': null
            },
            {
                'title': 'Sub 2',
                'submenu': null
            },
            {
                'title': 'Sub 3',
                'submenu': [
                    {
                        'title': 'SubSub 1',
                        'submenu': null
                    },
                    {
                        'title': 'SubSub 2',
                        'submenu': null
                    },
                    {
                        'title': 'SubSub 3',
                        'submenu': null
                    }
                ]
            }
        ]
    }
];

var getMenuItem = function (MENU) {
    $.each(MENU, function (key, value) {
        var title = value.title;
        $('#myMenu').append('<ul>' +'<li>' + title +'</li>' + '</ul>' );


    });
    console.log(MENU);

};
getMenuItem();



console.log(MENU);

});
$(函数(){
变量菜单=[
{
“标题”:“第1项”,
“子菜单”:空
},
{
“标题”:“第2项”,
“子菜单”:空
},
{
“标题”:“第3项”,
“子菜单”:[
{
“标题”:“子1”,
“子菜单”:空
},
{
“标题”:“子2”,
“子菜单”:空
},
{
“标题”:“子3”,
“子菜单”:[
{
“标题”:“第1子项”,
“子菜单”:空
},
{
“标题”:“第2子类”,
“子菜单”:空
},
{
“标题”:“第3子项”,
“子菜单”:空
}
]
}
]
}
];
var getMenuItem=函数(菜单){
$。每个(菜单、功能(键、值){
var title=value.title;
$(“#我的菜单”)。追加(“
    ”+“
  • ”+标题+”
  • “+”
”); }); 控制台日志(菜单); }; getMenuItem(); 控制台日志(菜单); });
您的函数
getMenuItem
需要一个经过迭代的参数,但在调用中您没有传递任何参数,因此函数中的
菜单
未定义,因此出现错误

所以改变

getMenuItem();


如果不希望将菜单实例传递给函数,并且希望使用共享变量
menu
,则从函数定义中删除参数声明,即将变量change
var getMenuItem=function(menu){
to

var getMenuItem = function () {
    //now here MENU will refer to the MENU variable in the shared scope
}

函数
getMenuItem
需要一个经过迭代的参数,但在调用中没有传递任何参数,因此函数中的
MENU
未定义,因此会出现错误

所以改变

getMenuItem();


如果不希望将菜单实例传递给函数,并且希望使用共享变量
menu
,则从函数定义中删除参数声明,即将变量change
var getMenuItem=function(menu){
to

var getMenuItem = function () {
    //now here MENU will refer to the MENU variable in the shared scope
}

您必须更改函数调用或函数声明,因为它们不兼容。 声明变更如下:

var getMenuItem = function () { //removed unnecessary argument
将调用更改为

 getMenuItem(MENU) // pass MENU as argument

您必须更改函数调用或函数声明,因为它们不兼容。 声明变更如下:

var getMenuItem = function () { //removed unnecessary argument
将调用更改为

 getMenuItem(MENU) // pass MENU as argument

在这里使用示例数据运行时,您希望获得什么输出?在这里使用示例数据运行时,您希望获得什么输出?