如何获取四层嵌套Object中的每一个对象?

我创建了一个包含 3 个对象的对象,其中一个包含三个对象,我想让它们中的每一个都设置值。

而且不知道是否以对象的类型来划分,好像都是Object。

我尝试这样做,第一次遍历以识别对象和数组,然后遍历两次,第三次离开,但控制台显示错误。


>无法设置未定义的属性“www.google.com”
类型错误:无法
在eval处设置未定义的属性“www.google.com”(userscript.html?name=
在Array.forEach()

原脚本排除了四层嵌套Object浏览器搜索工具

    Object.keys(iconsData).forEach(function(value1) {


        if(iconsData[value1].constructor === Array){

            iconsData[value1].forEach(function (value2) {

                console.log('typeArray--'+iconsData[value1].constructor)

                value2.host.forEach(function(host) {

                    iconsData.hostCustomMap[host] = value2.custom     // The console shows an Error maybe here

                })

            })

        } else if (iconsData[value1].constructor === Object) {

            Object.keys(iconsData[value1]).forEach(function (value2) {

                console.log('typeObject--'+iconsData[value1].constructor)

                iconsData[value1][value2].forEach(function (value3) {

                    value3.host.forEach(function(host){

                        iconsData.hostCustomMap[host] = value3.custom

                    });

                });

            });

        }

    })


以下代码包含嵌套对象。


守候你守候我
浏览 113回答 1
1回答

慕标5832272

无法设置未定义的属性“www.google.com” TypeError:无法设置未定义的属性“www.google.com”引发错误是因为 hostCustomMap 不是 iconData 的属性。在代码末尾设置一个名为 hostCustomMap 的变量,这应该是对象 iconData 的属性。就像原来的剧本一样。像这样:var iconsData = {    iconArraya: ...,    iconArrayb: ...,    iconArrayc: ...,    iconArrayD: ...,    hostCustomMap: {}}不是这个:var iconsData = {    iconArraya: ...,    iconArrayb: ...,    iconArrayc: ...,    iconArrayD: ...}var hostCustomMap = {}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript