У меня есть JSON данные из API в формате:
const data = [
{
order_id: 1,
delivery_status: 'pending',
dispatcher_id: 129,
shopify_order_reference: '2195824935049',
updated_at: '2020-04-22T00:09:01.275Z',
item_count: 1
},
{ order_id: 2,
delivery_status: 'pending',
dispatcher_id: 129,
shopify_order_reference: '2216944500873',
updated_at: '2020-04-22T00:46:27.562Z',
item_count: 2
}]
Я пытаюсь отфильтровать данные этого сына по диапазону дат, скажем min_date = '2020-04-22' и max_date = «2020-04-23», а также по статусу доставки, например, delivery_status = «ожидает» или «завершено», в зависимости от обстоятельств. Я попытался написать это, чтобы отфильтровать данные в зависимости от параметра, предоставленного пользователем в параметрах запроса (скажем, чтобы сделать его динамическим c). Любая помощь с этим?
let query = { delivery_status: "pending", min_date: '2020-04-22', max_date: '2020-04-23' }
const availableFilters = ['delivery_status', 'min_date', 'max_date'];
const selectedFilterKeys = [];
const selectedFilterValues = [];
for (const x in query) {
if (availableFilters.indexOf(x) >= 0) {
selectedFilterKeys.push(x);
selectedFilterValues.push(query[x]);
}
}
// filter function
filterData = (data, query) => {
const filteredData = data.filter((item) => {
for (let key in query) {
if (item[key] === undefined) {
return false;
}
}
return true;
});
return filteredData;
};
let result = filterData(data, query);