如何将日期范围的字符串转换为可用的JSON?

j_d*_*j_d 2 javascript json solr date momentjs

我从Solr索引中得到了一堆日期范围,它以这种格式出现在我面前:

[
  "[2016-11-02 TO 2016-11-02]",
  "[2016-11-16 TO 2016-11-16]",
  "[2016-11-05 TO 2016-11-08]",
  "[2016-11-09 TO 2016-11-09]",
  "[2016-11-11 TO 2016-11-12]",
  "[2016-11-10 TO 2016-11-10]"
]
Run Code Online (Sandbox Code Playgroud)

我想这是Solr的某种标准语法,但是如何将它转换为JavaScript中有用的东西,例如:

[
  {
    start: "2016-11-02",
    end: "2016-11-02"
  },
  {
    start: "2016-11-16",
    end: "2016-11-16"
  },
  ...etc
]
Run Code Online (Sandbox Code Playgroud)

我已经在项目中使用了MomentJs,所以这也是一个选项

Nin*_*olz 5

您可以为零件采用正则表达式并映射新对象.

var data = [ "[2016-11-02 TO 2016-11-02]", "[2016-11-16 TO 2016-11-16]", "[2016-11-05 TO 2016-11-08]", "[2016-11-09 TO 2016-11-09]", "[2016-11-11 TO 2016-11-12]",  "[2016-11-10 TO 2016-11-10]"],
    result = data.map(function (a) {
        var m = a.match(/^\[(.+) TO (.+)\]$/);
        return { start: m[1], end: m[2] };
    });

console.log(result);
Run Code Online (Sandbox Code Playgroud)
.as-console-wrapper { max-height: 100% !important; top: 0; }
Run Code Online (Sandbox Code Playgroud)