2017-01-26 5 views
2

Я получаю кучу диапазонов от индекса Solr, который приходит мне в этом формате:Как преобразовать строки диапазонов дат в полезный JSON?

[ 
    "[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 в проекте, так что это вариант, а

ответ

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

+0

Регулярное выражение может быть 'a.match (/ [\ д -] +/г)', чтобы сохранить некоторые печатать. ;-) – RobG

+0

@RobG, ему нужно повторить согласованный набор результатов. –