[英]how to filter json data by date range and delivery status
我有来自 API 格式的 JSON 数据:
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 = 'pending' 或 'completed' 视情况而定可能是。我试着写这个来根据用户在查询参数中提供的参数过滤数据(比如让它动态)。有什么帮助吗?
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);
你的 function 应该是这样的:
filterData = (data, query) => {
const filteredData = data.filter((item) => {
for (let key in query) {
console.log(key)
if (item[key] === undefined) {
return false;
}
return true;
}
});
return filteredData;
};
您的 return true 命令已关闭。 您的代码执行从未达到 else 案例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.