首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于循环输出的Node.js仅来自JSON的最后一项

用于循环输出的Node.js仅来自JSON的最后一项
EN

Stack Overflow用户
提问于 2020-05-13 03:05:44
回答 1查看 29关注 0票数 0

下面的代码只输出最后一个结果,我不明白。我检查updateDate条目是否包含2020-05,两个条目都包含,并且我只得到最后一个条目。循环没有循环:)

代码语言:javascript
复制
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;
}
EN

回答 1

Stack Overflow用户

发布于 2020-05-13 03:52:33

代码语言:javascript
复制
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的值。

--编辑--

要使响应成为数组,您需要将代码修改为

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61759965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档