【问题标题】:Iterating object array within object - javascript?在对象中迭代对象数组 - javascript?
【发布时间】:2017-06-08 09:50:07
【问题描述】:

我知道以前已经介绍过迭代 - 我通常对它很好,但这次却很挣扎。

我正在尝试遍历以下信息:

Object { leaving: object { all: array[10] } }

我可以很容易地返回一个结果:

 var html = '<p>' + news.leaving.all[0].departure_time + '</p>';

但是当我尝试循环时:

    var html = "";
    var i;
    for (i = 0; i < news.length; i++) {                
        html +=
        '<p>' + news[i].leaving.all.departure_time '</p>';
     }

我什么都得不到……

对此的任何帮助都会很棒。

谢谢

【问题讨论】:

  • 能否提供数组数据?
  • news 是您在顶部写的对象吗?它的长度属性是什么? (提示:在我看来它没有。)此外,您应该考虑将forEach 用于数组。
  • news 不是数组,news.leaving.all 是。问题是一个简单的错字问题,不太可能对未来的访问者有用

标签: javascript arrays for-loop iteration


【解决方案1】:

看来你需要

'<p>' + news.leaving.all[i].departure_time '</p>';

而不是

 '<p>' + news[i].leaving.all.departure_time '</p>';

也要改变

for (i = 0; i < news.length; i++) {                

for (i = 0; i < news.leaving.all.length; i++) {                

【讨论】:

  • 谢谢@ykay ...我之前尝试过,但也没有用...
  • 可能是因为你在看new.length,也应该切换
【解决方案2】:

您还必须遍历“all”成员:

var html = "";
for (var i = 0; i < news.leaving.all.length; j++) {                
   html +=
   '<p>' + news.leaving.all[i].departure_time '</p>';
}

【讨论】:

    【解决方案3】:

    您可以使用Array.prototype.forEach() 来遍历数组news.leaving.all

    代码示例:

    var news = {leaving: {all: [{departure_time: '01:00'},{departure_time: '02:00'},{departure_time: '03:00'}]}},
        html = "";
        
    news.leaving.all.forEach(function (n) {
      html += '<p>' + n.departure_time + '</p>';
    });
    
    console.log(html);

    【讨论】:

      【解决方案4】:

      你必须遍历news.leaving.all:

      // Let's say this is our data
      var news = {
        leaving: {
          all: [{
            departure_time: '01:00'
          },
          {
            departure_time: '02:00'
          },
          {
            departure_time: '02:00'
          }]
        }
      };
      
      var html = "";
      var i;
      for (i = 0; i < news.leaving.all.length; i++) {                
        html += '<p>' + news.leaving.all[i].departure_time + '</p>';
       }
           
      console.log(html);     

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-29
        • 2019-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-13
        • 2015-08-29
        相关资源
        最近更新 更多