最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Node.js for循环仅输出JSON中的最后一项

网站源码admin17浏览0评论

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;

发布评论

评论列表(0)

  1. 暂无评论