Javascript 是否可以将重复标签(及其数据)合并到图表Js中的一列中?
例如,如果标签使用数组['05/Feb/2019'、'05/Feb/2019'、'05/Feb/2019'、'01/Feb/2019'],而相应值使用数组['2'、'5'、'7'、'4'] 是否可以只显示一列所有元素“2019年2月5日”,将其值汇总在此列中 图表JS的代码Javascript 是否可以将重复标签(及其数据)合并到图表Js中的一列中?,javascript,arrays,charts,chart.js,Javascript,Arrays,Charts,Chart.js,例如,如果标签使用数组['05/Feb/2019'、'05/Feb/2019'、'05/Feb/2019'、'01/Feb/2019'],而相应值使用数组['2'、'5'、'7'、'4'] 是否可以只显示一列所有元素“2019年2月5日”,将其值汇总在此列中 图表JS的代码 您可以使用reduce进行此操作。愿这对你有帮助 var label = ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019']; var valu
您可以使用reduce进行此操作。愿这对你有帮助
var label = ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'];
var value = ['2', '5', '7', '4'];
var obj = label.reduce(function(a, b, i) {
if(!a.hasOwnProperty(b)) {
a[b] = 0;
}
console.log(a);
a[b] += Number(value[i]);
return a;
},{});
var lab = Object.keys(obj);
var val = Object.values(obj);
这成功地完成了任务,但现在图表不再呈现。我尝试过使用.map()和.split(),但它们都没有帮助渲染。顺便说一句,代码中的标签是我的列(有时称为图表的图例)。该值是代码中的列_b。我发现了问题:数组末尾有一个NaN:6.35,9.07,78.9312420.514198.67,0.91,34.02,13.15,59.42302.061480.94,62.0999999994111.52303.88,90.71000000000001116.99999999999999999,84.7800000000002130.519999999999999998253.54000000000002189.45,1.35,3.62,22.2099999999999997215.45,1.8738.94,6.35,0.36,2.72,5!!我必须使用“.filter(Boolean)”删除NaN。之后,我将“column_b”的“const”改为“var”。问题解决了。谢谢你,索拉布!只是注意到,在某些情况下,第一个标签和值没有与其他标签和值一起考虑,因此,例如,我最终得到以下输出:数组(标签)['05/Feb/2019'、'05/Feb/2019'、'01/Feb/2019']和数组(值)['2'、'12'、'4']作为各自的值。你知道为什么会这样吗?
var label = ['05/Feb/2019', '05/Feb/2019', '05/Feb/2019', '01/Feb/2019'];
var value = ['2', '5', '7', '4'];
var obj = label.reduce(function(a, b, i) {
if(!a.hasOwnProperty(b)) {
a[b] = 0;
}
console.log(a);
a[b] += Number(value[i]);
return a;
},{});
var lab = Object.keys(obj);
var val = Object.values(obj);