Arrays 在JSON上迭代只会产生最后一个结果
我在Google Alerts中创建了一个警报,需要解析XML。我正在使用模块,我的代码如下: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
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对象并将其粘贴到此处