фильтровать массив объектов по значению объекта - PullRequest
0 голосов
/ 24 сентября 2019

Попытка отфильтровать массив объектов по значениям начального и конечного объектов.

start = "Feb-2015"
end = "Jul-2015"

result = array.sort(2,7);

пробовал это, но у меня есть даты, я не буду знать его индекс.array = [{"date": "Jan-2015"}, {"date": "Feb-2015"}, {"date": "Mar-2015"}, {"date": "Apr-2015"}, {"date": "May-2015"}, {, "date": "Jun-2015"}, {"date": "Jul-2015"}, {"date": "Aug-2015"}]

ожидаемый результат: -

result = [
      {
        "date": "Feb-2015"
      },
      {
        "date": "Mar-2015"
      },
      {
        "date": "Apr-2015"
      },
      {    "date": "May-2015"
      },
      {,
        "date": "Jun-2015"
      },
      { 
        "date": "Jul-2015"
      }
]

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

const data = [{"date":"Jan-2018"},{"date":"Feb-2015"},{"date":"Mar-2015"},{"date":"Apr-2015"},{"date":"May-2015"},{"date":"Jun-2015"},{"date":"Jul-2015"},{"date":"Aug-2015"}];

console.log(data.sort((a, b) => { return new Date(a.date) - new Date(b.date)}));
0 голосов
/ 24 сентября 2019

Используйте ниже.

array = [{
    "date": "Jan-2015"
  },
  {
    "date": "Aug-2015"
  },
  {
    "date": "Feb-2015"
  },
  {
    "date": "Mar-2015"
  },
  {
    "date": "Apr-2015"
  },
  {
    "date": "May-2015"
  },
  {
    "date": "Jun-2015"
  },
  {
    "date": "Jul-2015"
  }

];

//filter
sort = (arr, start, end) => {
  let arrayFiltered = arr.filter((obj) => {
    obj.dateObj = new Date(obj.date.substring(0, 3) + obj.date.substring(4, 8));

    return (obj.dateObj.getMonth() + 1) >= start && (obj.dateObj.getMonth() + 1) <= end;
  });

  console.log(arrayFiltered.sort(obj => obj.dateObj));
};

sort(array, 2, 7);

Выход

[{
  "date": "Feb-2015",
  "dateObj": "2015-01-31T18:30:00.000Z"
}, {
  "date": "Mar-2015",
  "dateObj": "2015-02-28T18:30:00.000Z"
}, {
  "date": "Apr-2015",
  "dateObj": "2015-03-31T18:30:00.000Z"
}, {
  "date": "May-2015",
  "dateObj": "2015-04-30T18:30:00.000Z"
}, {
  "date": "Jun-2015",
  "dateObj": "2015-05-31T18:30:00.000Z"
}, {
  "date": "Jul-2015",
  "dateObj": "2015-06-30T18:30:00.000Z"
}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...