我有以下数据集
输入:
dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}]
dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]
我在条形图上显示此信息,但条形图试图将它们分组。并没有给我我所期望的。 http://jsfiddle.net/7dhb4jh0/1
因此,在我提供条形图之前,我需要输出以下信息
通过添加{data:0, color:null}
来匹配两个数据集长度的所需输出背后的逻辑有两件事涉及unshift
和push
操作
期望输出:
dataset[0]=[{data:29, color:"y"},{data:44, color:"g"},{data:0, color:null},{data:0, color:null},{data:0, color:null}]
dataset[1]=[{data:0, color:null},{data:0, color:null},{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]
初始尝试
我按照以下方式做了,https://jsfiddle.net/s8mywm33/1/
dataset=[];
dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}]
dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]
sum1=dataset[0].length
sum2=dataset[1].length
for(i=0;i<sum1;i++)
{
dataset[1].unshift({data:0, color:null})
}
for(i=0;i<sum2;i++)
{
dataset[0].splice(2, 0, {data:0, color:null});
}
console.log(dataset[0]);
console.log(dataset[1]);
然而,有更好的方法吗?
答案 0 :(得分:1)
根据我在评论中的建议,您可以通过多种方式进行此操作。我建议的只是使用虚拟值(正如我提到的bsxfun
):
var blank = {data:0, color:null};
var dataset = [];
dataset[0] = [{data:29, color:"y"}, {data:44, color:"g"}, blank, blank, blank];
dataset[1] = [blank, blank, {data:16, color:"r"}, {data:23, color:"m"}, {data:23, color:"b"}];
这使得您的意图明显清楚,数据应该在何处,并且不需要额外的代码。