javascript对象中的推送和取消移动操作
我有以下数据集 输入:javascript对象中的推送和取消移动操作,javascript,Javascript,我有以下数据集 输入: dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}] dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}] dataset[0]=[{data:29, color:"y"},{data:44, color:"g"},{data:0, color:null},{data:0, color:null},{data:0, c
dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}]
dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]
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"}]
我在条形图上显示这些信息,但条形图试图对它们进行分组。它并没有给我我所期望的
因此,在输入条形图之前,我需要有以下输出
通过添加{data:0,color:null}
来匹配两个数据集长度的所需输出背后的逻辑有两件事涉及unshift
和push
操作
所需输出:
dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}]
dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]
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"}]
初始尝试
我是这样做的
dataset=[];
数据集[0]=[{数据:29,颜色:“y”},{数据:44,颜色:“g”}]
数据集[1]=[{数据:16,颜色:“r”},{数据:23,颜色:“m”},{数据:23,颜色:“b”}]
sum1=数据集[0]。长度
sum2=数据集[1]。长度
对于(i=0;i根据我在评论中的建议,有很多方法可以做到这一点。我建议的方法只是使用一个虚拟值(如我所提到的):
这使您可以清楚地了解数据应该在哪里,并且不需要太多额外的代码。在前面插入称为“数组取消移位”操作,可以作为dataset[1]执行。取消移位({data:0,color:null},{data:0,color:null})
。请参见此处:。这是问题的主要部分;其他所有内容都是push()
(如上面的链接所示)或splice()
,如图所示:可能重复的请检查我的解决方案,是否有更好的方法?我不知道是否有更好的方法;因为数据的预期位置不统一,如果不给它某种形式,你就不能真正说出应该在数据中插入伪值的位置。可能是makin为图形中的每一列创建一个具有特定数据字段的对象,或者创建一个可以放置在适当位置的虚拟条目?但是,我正在寻找模块化代码。为了处理各种场景。我可以添加虚拟数据,但背后应该有逻辑。我对您的工作进行了优化。请记住,您还可以将标志值和函数嵌入到ob中jects;这可能是一种向系统中添加逻辑的方法,在处理数据集时,您可以检查标志或调用函数,对象本身决定接下来发生什么。