как фильтровать данные в указанные c дни - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть некоторые данные, подобные этим:

[
  {
    startTime: '2020-01-28T11:00:00',
    name: 'John',
  },
  {
    startTime: '2020-01-28T12:00:00',
    name: 'Doe'
  },
  {
    startTime: '2020-01-29T10:00:00',
    name: 'javascript',
  }
]

Как вы видите, у меня одни и те же дни, и теперь я хочу отфильтровать их по дням! Все те же дни будут в массиве.

Будь таким:

[
  {
    startTime: '2020-01-28T11:00:00',
    name: 'John'
  },
  {
    startTime: '2020-01-28T12:00:00',
    name: 'Doe'
  },
],
[
  {
    startTime: '2020-01-29T10:00:00',
    name: 'javascript'
  },
]

У тебя есть какие-либо предложения или советы?

1 Ответ

2 голосов
/ 10 февраля 2020

Вы можете создать groupBy функцию, подобную этой для того же

Мы группируем players по подстроке первых 10 символов в startTime, которые будут данными того же

var players = [
    {
      startTime: '2020-01-28T11:00:00',
      name: 'John',
    },
    {
      startTime: '2020-01-28T12:00:00',
      name: 'Doe'
    },
    {
      startTime: '2020-01-29T10:00:00',
      name: 'javascript',
    }
  ]
  
  var groupBy = function(xs, key) {
    return xs.reduce(function(rv, x) {
      (rv[x[key].substr(0,10)] = rv[x[key].substr(0,10)] || []).push(x);
      return rv;
    }, {});
  };
  
  console.log(Object.values(groupBy(players, 'startTime')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...