为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守候你守候我 2023-11-02 22:37:23
我创建了一个包含 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                    });                });            });        }    })以下代码包含嵌套对象。
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

无法设置未定义的属性“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 = {}


查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信