Arrays 在JSON上迭代只会产生最后一个结果

Arrays 在JSON上迭代只会产生最后一个结果,arrays,json,node.js,rss,iteration,Arrays,Json,Node.js,Rss,Iteration,我在Google Alerts中创建了一个警报,需要解析XML。我正在使用模块,我的代码如下: app.get('/', (req, res) => { parse(url).then((rss) => { let title, link, publishedDate, contentSnippet = ''; let json = {}; rss['entries'].forEach((item) =&g

我在Google Alerts中创建了一个警报,需要解析XML。我正在使用模块,我的代码如下:

app.get('/', (req, res) => {
  parse(url).then((rss) => {
    let title,
        link,
        publishedDate,
        contentSnippet = '';
    let json = {};

    rss['entries'].forEach((item) => {
      title = item.title;
      link = item.link.substring(42, item.link.indexOf('&ct='));
      publishedDate = item.publishedDate;
      contentSnippet = item.contentSnippet;
    });

    json = {
      title,
      link,
      publishedDate,
      contentSnippet
    };

    res.send(beautify(json, null, 2, 100));
  }).catch((err) => {
    res.send(err);
  });
});
我想循环查看
“entries”
键中的内容。虽然有效,但结果只是最后一次

另外,如果我将
json
变量移动到循环内部,返回的结果是
[object object]
,尽管长度正确


我尝试了
JSON.stringify
,没有区别。

此表达式将最后一个entrie的值分配给变量:

rss['entries'].forEach((item) => {
  title = item.title;
  link = item.link.substring(42, item.link.indexOf('&ct='));
  publishedDate = item.publishedDate;
  contentSnippet = item.contentSnippet;
});
然后根据最后的值创建
json

相反,
Array#将条目映射到新数组中。每次迭代都应该返回一个对象

const arr = rss['entries'].map(({ title, link, publishedDate, contentSnippet }) => ({
  title,
  link: link.substring(42, link.indexOf('&ct=')),
  publishedDate,
  contentSnippet
}));

res.send之前的console.log json对象并将其粘贴到此处