Получить последние значения каждого объекта в ответе JSON - PullRequest
0 голосов
/ 07 февраля 2019

Я ищу способ разбора ответа JSON на , получающего только дни в массиве дат.

Текущий ответ JSON:

 @result =  [2018-01-01, 2018-01-02, 2018-01-03, 2018-01-04]

@result.last(2) или эквивалент для рельсов, естественно, получат только две последние даты во всем массиве.

result.slice(-2) или эквивалент для jQuery, к сожалению, будет также извлекать мне только две последние даты во всем массиве.

Желаемый результат анализа:

[01, 02, 03, 04]

Ответ дляjQuery или Rails были бы чрезвычайно полезны!

Ответы [ 3 ]

0 голосов
/ 07 февраля 2019

Вы можете использовать следующее регулярное выражение для соответствия последним цифрам в вашей строке:

/-(\d+)$/

Затем вы можете использовать .map в вашем массиве results для сопоставления каждогодата в день, используя вышеприведенное выражение.

См. пример ниже:

const result = ["2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04"],

days = result.map(day => day.match(/-(\d+)$/)[1]);
console.log(days);
0 голосов
/ 07 февраля 2019
  1. Вы также можете преобразовать его в дату и получить соответственно дату, месяц и год.
  2. После добавления в массив

var result = ["2018-01-01", "2018-01-02", "2018-01-03", "2018-01-04"];
var arr = [];
$.each(result, function(i, v) {
  var date = new Date(v);
  var day = date.getDate();
  var monthIndex = date.getMonth();
  var year = date.getFullYear();
  arr.push(day)
})
console.log(arr)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
0 голосов
/ 07 февраля 2019

Вы можете использовать простой JavaScript для этого.

var newResult = result.map(function(date) {
  return date.split('-')[2];
})

MDN Документация по функции Array Map

...