我想在条形图中绘制一周的数据,如果响应对象中没有日期,如何给予空值。我使用moment和lodash groupby来查找一周中的哪一天。
const actionHistory = [
{
"c_code": "FIELD_VISIT",
"amtp_actionTaken": "call",
"amtp_takenOn": "2023-01-13T18:28:12.850Z"
},
{
"c_code": "FIELD_VISIT",
"amtp_actionTaken": "call",
"amtp_takenOn": "2023-01-11T18:28:12.850Z"
}
];
const weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const month = groupBy(actionHistory, (dt) => moment(dt?.amtp_takenOn).days());
const result = map(month, (el, i) => ({ value: el?.length, label: weekdays[i - 1], frontColor: '#177AD5' });`
如果我把console.log放到result中,我会得到唯一可用的日期周天数,如下图所示
[{"value":1,"label":"Tue","frontColor":"#177AD5"},{"value":1,"label":"Thu","frontColor":"#177AD5"}]
我的预期输出应该是。
[{"value":0,"label":"Sun","frontColor":"#177AD5"},
{"value":0,"label":"Mon","frontColor":"#177AD5"},
{"value":1,"label":"Tue","frontColor":"#177AD5"},
{"value":1,"label":"Wed","frontColor":"#177AD5"},
{"value":1,"label":"Thu","frontColor":"#177AD5"},
{"value":0,"label":"Fir","frontColor":"#177AD5"},
{"value":0,"label":"Sat","frontColor":"#177AD5"}]
2条答案
按热度按时间j2qf4p5b1#
这就行了
du7egjpx2#
也许这就是你要找的?
在我的代码片段中有很多假设:
actionHistory
的对象中的datetime值被解释为start
和end
日期,我按照工作日值从小到大的顺序对它们进行排序(0到6表示星期日到星期六),因此开始工作日的值将小于结束工作日的值。"2023-01-13T18:28:12.850Z"
是星期五,"2023-01-11T18:28:12.850Z"
是星期三。start
和end
定义的跨度内的所有日期将被赋予值1
,并且所有其它日期将被赋予值0
。