首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在for循环中将包含子字符串的值分隔到单独的数组中

如何在for循环中将包含子字符串的值分隔到单独的数组中
EN

Stack Overflow用户
提问于 2020-01-15 07:23:20
回答 1查看 27关注 0票数 0

我可能不会问这个问题,但我有一个JSON数组,我解析它来提取以下格式的时间值:

(2020-01-08T20:00:03.492Z)

我想用日期来区分不同的时间。因此,我在for循环中使用'T‘索引处的substring拆分字符串,并创建一个新数组,然后对其进行过滤,使其只包含如下所示的唯一值:

Array(6) "2020-01-10","2020-01-08","2020-01-07","2020-01-06","2019-12-23","2019-12-17“

我现在想要获取这些值中的每一个,将其与JSON响应的原始输出相关联,以提取包含指定日期的漏洞数量的不同字段'vulnerabilitiesCount‘,并将这些值添加到上面的数组中的每个日期。我不知道如何遍历唯一数组中的每个索引。下面的代码完成了我想要为数组的第一个索引实现的功能。感谢任何提前提供的意见!

代码语言:javascript
复制
        let arrTwo = [];
        let arrThree = [];
        for(var i=0; i<jsonP.length; i++)
        {
          var jtStr = jsonP[i].time
          // for(b in unique){
            var j = jtStr.includes(unique[0]);
            if(j === true){
              arrTwo.push(jtStr);
            }                
            for(var d=0;d<=arrTwo.length;d++){
              if(arrTwo[d]==jsonP[i].time){
                arrThree.push(jsonP[i].vulnerabilitiesCount);
              }
            }
        // }
        }            
        var sum = 0;
        for(f=0;f<=arrThree.length;f++){
          sum += parseInt(arrThree[f]);
        }
EN

回答 1

Stack Overflow用户

发布于 2020-01-15 07:59:51

考虑到您的JSON与我在代码中使用的JSON类似,它应该是这样的:

代码语言:javascript
复制
const data = {
  time: ["(2020-01-08T20:00:03.492Z)"],
  vulnerabilitiesCount: [1, 2]
}

let timesArray = [];

for(let i = 0; i < data.time.length; i++) {
  let formTime = data.time[i].replace("(", "");
  formTime = formTime.replace(")", "");

  let parsedTime = new Date(formTime);

  let month = parsedTime.getMonth()+1;
  if(month < 10) {
    month = "0" + month;
  }

  let timeFormatted = parsedTime.getFullYear() + "-" + month + "-" + parsedTime.getDate();

  let fullTime = {
    time: "",
    vulnerabilitiesCount: 0 
  }

  if(timesArray.find(t => t.time == parsedTime)) {
    continue;
  }

  fullTime.time = timeFormatted;
  if(data.vulnerabilitiesCount[i] > 0) fullTime.vulnerabilitiesCount = data.vulnerabilitiesCount[i];

  timesArray.push(fullTime)
}

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59743184

复制
相关文章

相似问题

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