为什么我的代码返回“无法读取未定义的属性''?

时间:2019-06-17 16:34:09

标签: javascript

我正在尝试根据外部json文件中的信息创建一个数组,该文件将“汇总”为对象数组。

var their_name;
$.getJSON('data.json', function(json) {
    json.results.forEach(function(item){
        details["byPop"][item.our_switch_name][item.their_asn]['name'] = item.their_name;
        if(!('ports' in details["byPop"][item.our_switch_name][item.their_name])) {
            details["byPop"][item.our_switch_name][item.their_name]['ports'] = []
        }

        details["byPop"][item.our_switch_name][item.their_name]['ports'].push(item)        
    })   
})

我希望看到一个数组,该数组按弹出窗口->按开关->按开关->按ASN->按名称->按公司的端口存储数据,但是出现了以下错误:无法读取以下属性:未定义

1 个答案:

答案 0 :(得分:0)

如果您能确定如何导入lodash,这可能会有所帮助。

var their_name;
$.getJSON('data.json', function(json) {
    json.results.forEach(function(item){
        item.their_name.ports = item.their_name.ports || []
        item.their_name.ports.push(item)
        _.set(details, ["byPop",item.our_switch_name,item.their_asn,'name'],
              item.their_name)
    })   
})