【问题标题】:How to convert strings of date ranges into usable JSON?如何将日期范围字符串转换为可用的 JSON?
【发布时间】:2017-06-11 18:04:39
【问题描述】:

我从 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]"
]

我猜这是 Solr 的某种标准语法,但我怎样才能将其转换为 JavaScript 中有用的东西,例如:

[
  {
    start: "2016-11-02",
    end: "2016-11-02"
  },
  {
    start: "2016-11-16",
    end: "2016-11-16"
  },
  ...etc
]

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

【问题讨论】:

    标签: javascript json date solr momentjs


    【解决方案1】:

    您可以为部件使用正则表达式并映射新对象。

    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);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

    • 正则表达式可以是a.match(/[\d-]+/g),以节省一些输入。 ;-)
    • @RobG,它需要迭代匹配的结果集。
    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多