对象存在,但在youtube响应中仍未定义



我有一些Youtube API JS小麻烦。我已经解决了一段时间的故障,并且我已经用注释注释了我的代码,以便您了解问题所在。我知道有好几件事他们可能是错的。不管怎样,谢谢你的帮助!

   request.execute(function(response) {
      console.log(response.result.items); // Here you get an array of objects.
      var results = response.result;
      console.log(results.items.length);
      var id = results.items.id;
      for (id in results.items) {
      console.log(results.items.id); // And here it is undedfine. When adding video.Id the console says cannot read property videoId of undefined.
      console.log('if you read this the loop works');
  }
   });

您正在尝试访问数组上的id属性,该属性不存在(因此为undefined)。主要的问题是,for in在JavaScript是迭代通过对象键,而不是数组。使用常规的for循环:

request.execute(function (response) {
  var results = response.result;
  for (var i = 0; i < results.length; i++) {
    console.log(results[i]);
  }
});

如果您不需要支持IE8,您可以使用.forEach()

(作为旁注,阅读一点关于for in与JavaScript,因为你的用法有点不正确)

相关内容

  • 没有找到相关文章

最新更新