【问题标题】:For in loop after pushing a array to object, consoling as undefined [closed]将数组推送到对象后的循环中,安慰为未​​定义[关闭]
【发布时间】:2013-07-10 10:22:34
【问题描述】:

我正在循环一个对象,当我循环该对象时,我正在推送一个数组。在我将数组推入对象后,当我控制台时,我得到一个未定义的结果..这里有什么问题..

我的代码:

 var mainLink = {"links":[]};

     for(key in obj){
                if(obj[key].hasOwnProperty("value")){
                    mainLink.links.push({"label" : key,"link" : obj[key]["MainLink"], "subLinks": [] });
                    console.log(mainLink.links.subLinks); // why i am getting undefined instead array?
                }else{
                    mainLink.links.push({"label" : key,"link" : obj[key]});
                }
            }

我只是得到未定义的数组而不是数组......这里有什么问题......

【问题讨论】:

  • 我想它会更好,如果你能把它添加到小提琴中
  • 你在哪里定义了obj,我猜应该是mainLink
  • subLinks 是项目的属性,而不是 links 数组的属性
  • 可能是因为您在子链接"subLinks": [] 中没有添加任何内容,然后mainLink.links.subLinks 返回一个空数组
  • 总是使用控制台调试它,你会看到你的问题是什么

标签: javascript jquery loops


【解决方案1】:

根据您的代码,mainLink.links 是一个数组,mainLink.links.subLinks 实际上是undefined

mainLink.links[0].subLinks 访问它(将0 替换为适当的索引)应该会给您预期的结果。

例如:

console.log(mainLink.links[mainLink.links.length-1].subLinks);

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    相关资源
    最近更新 更多