使用索引而不是名称访问对象中的i in for循环的长度

时间:2017-05-03 01:17:12

标签: javascript

我有for (var i = 0; i < podcasts.episodes.showOne.length; i++)

它起作用,因为名为showOne的节目存在。这是第一个节目,因此它的索引为0。

在索引1处有第二个节目,我们称之为showTwo

理想情况下,我正在寻找像(var i = 0; i < podcasts.episodes.[0].length; i++)这样的东西,但这不起作用。有没有办法做到这一点?

虽然我们在这里,我可以用变量代替“showOne”,变量代表节目名称吗?也就是说,如何将变量插入此处podcasts.episodes.VARIABLE.length

干杯!

2 个答案:

答案 0 :(得分:0)

您没有与object分享,但这是一个可能的解决方案:

var obj = {
  a : [
    [1, 2],
    [3, 4, 5]
  ]
};

var len = obj.a[0].length;
for(var i = 0; i < len; i++)
  console.log(obj.a[0][i]); // 1, 2

len = obj.a[1].length;
for(var i = 0; i < len; i++)
  console.log(obj.a[1][i]); // 3, 4, 5

答案 1 :(得分:0)

尝试使用 Object.keys(podcasts.episodes)。它将为您提供所有剧集名称的数组。然后你可以遍历每一个:

// episodeNames is an array of all the episodes
let episodeNames = Object.keys(podcasts.episodes)

for(var i = 0; i < episodeNames.length; i++) {
    // this will iterate through each episode

    for(var j = 0; j < episodeNames[i].length; j++) {
         // this will iterate through all the items in each episode 
    }
}