将JavaScript对象传递给For循环(无法读取未定义的属性)

时间:2018-10-08 21:50:47

标签: javascript arrays node.js for-loop

我正在进行一些Web抓取,并且在将Javascript变量传递到for循环时遇到问题。我创建了obj orray,将包含其他详细信息的多个数组传递给它,然后尝试在for循环中访问它。我在for循环中得到了cannot read property 'id' of undefined,但是我可以事先访问它。如何在for循环中访问.id和.isoDate?

let Parser = require('rss-parser');
let parser = new Parser();
var read = require('read-art');
const { Pool,  Client} = require('pg');
const pool = new Pool({});

var obj = [];

(async () => {
  let feed = await parser.parseURL('https://www.someurl.com/rss/index.xml');
  feed.items.forEach(item => {
    obj.push(item);
  });

  for (var i = 0, len = obj.length; i < len; i++) {
    read(obj[i].id, function(err, art, options, resp) {    //this obj[i].id works just fine!
      if (err) {
        throw err;
      }
      var title = art.title, 
          content = art.content; 
        articleid = obj[i].id, //id stored in obj, Doesn't Work!
        date = obj[i].isoDate, //date stored in obj, Doesn't Work!

...

其余的代码无关。

0 个答案:

没有答案