Node.js for循环仅输出JSON中的最后一项"/>
Node.js for循环仅输出JSON中的最后一项
下面的代码仅输出最后的结果,我不明白。我检查updateDate项是否同时包含2020-05,并且仅得到最后一个。循环没有循环:)
const briefing = [
{
"updateDate": "2020-05-05T00:00:00.0Z",
},
{
"updateDate": "2020-05-06T00:00:00.0Z",
},
{
"updateDate": "2020-05-13T00:00:00.0Z",
}
];
let date = new Date();
var formattedYearMonth = date.getFullYear() + '-' + ('0' + (date.getMonth()+1)).slice(-2) + '-';
for (var i = 0; i < briefing.length; i++) {
var jsonDate = briefing[i].updateDate;
if (jsonDate.includes(formattedYearMonth)) {
var response = JSON.stringify(briefing[i]);
}
}return response;
}
回答如下:for (var i = 0; i < briefing.length; i++) {
var jsonDate = briefing[i].updateDate;
if (jsonDate.includes(formattedYearMonth)) {
var response = JSON.stringify(briefing[i]); // <==== THIS IS WHERE YOUR PROBLEM LIES
}
}return response;
循环实际上是循环的:)。但是对于循环的每次运行,您都将重置response
的值。
-编辑-
为了使响应成为数组,您需要将代码修改为
let response = [];
for (var i = 0; i < briefing.length; i++) {
var jsonDate = briefing[i].updateDate;
if (jsonDate.includes(formattedYearMonth)) {
response.push(JSON.stringify(briefing[i]));
}
}
return response;
更多推荐
Node.js for循环仅输出JSON中的最后一项
发布评论