javascript - 按一定顺序分隔数组中的字符串

标签 javascript typescript

我有一个从转换后的 CHANGELOG.md 文件中获取的列表,它看起来像这样:

["[3.0.0]","Features", "changes done in file","[2.0.1]", "Bug Fixes", "fixed login"]

我想要做的是将每个版本分成自己的列表,如下所示:

["[3.0.0]", "Features", "changes done in file"],
["[2.0.1]", "Bug Fixes", "fixed login"]

显然,因为它是一个变更日志,所以单个版本中可以有多个功能和多个错误修复,所以我想要一段代码来适本地分隔代码。

我尝试使用 if (string.startsWith('[')) 但我无法将其放入循环中。

感谢任何帮助。

最佳答案

这是我想出的东西。该代码基本上循环输入数组并将每个字符串添加到 currentArray 变量中。每次遇到 [ 时,它都会将 currentArray 放入输出中并清除 currentArray。最后,它删除第一个元素,因为输出的第一个元素始终是一个空数组(因为输入的第一个元素以 [ 开头)

var input = ["[3.0.0]","Features", "changes done in file","[2.0.1]", "Bug Fixes", "fixed login"];
var output = [];
var currentArray = [];
for (var i = 0; i < input.length; i++) {
  if (input[i].charAt(0) == '[') {
      output.push(currentArray);
      currentArray = [];
  }
  currentArray.push(input[i]);
}
output.push(currentArray);
currentArray = [];

//Since it will take the first one, and put empty one, need to do last step.

output.splice(0, 1);

console.log(output);
// ["[3.0.0]", "Features", "changes done in file"],
// ["[2.0.1]", "Bug Fixes", "fixed login"]

关于javascript - 按一定顺序分隔数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50866712/

相关文章:

javascript - 在 nginx 错误 495(错误的客户端证书)上从 Rails Assets 管道提供样式表?

javascript - 你能混合 ASP.Net 和 Unobtrusive JavaScript

javascript - 动态添加和删除样式表

javascript - 在打开时添加一个功能到 slidetoggle

javascript - 通过泛型函数动态修改 TypeScript 类

laravel - 如何在以 Vue 作为前端的 Laravel 项目中使用 Typescript?

angular - Three.js -> FileLoader(scope.manager) 不是构造函数

javascript - Angular 和 ngrx : problems during upgrading to version8

javascript - 类型错误 : Cannot read property 'push' of undefined-IONIC2

javascript - Gulp Dest() 不输出文件