简体   繁体   English

javascript对象中的推入和移入操作

[英]Push and Unshift Operation in javascript object

I have the following dataset 我有以下数据集

Input: 输入:

dataset[0]=[{data:29, color:"y"},{data:44, color:"g"}]
dataset[1]=[{data:16, color:"r"},{data:23, color:"m"},{data:23, color:"b"}]

I am showing this information on bar chart, however bar chart attempting to group them. 我在条形图上显示此信息,但是条形图试图将它们分组。 And it does not give me what I expect. 它并没有给我我所期望的。 http://jsfiddle.net/7dhb4jh0/1 http://jsfiddle.net/7dhb4jh0/1

Therefore,I need to have the following output before I feed my bar chart 因此,在输入条形图之前,我需要获得以下输出

The logic behind the desired output to match the length of two dataset by adding {data:0, color:null} There are two things involved unshift and push operations 通过添加{data:0, color:null}所需输出背后的逻辑与两个数据集的长度相匹配涉及unshiftpush操作的两件事

Desired Output: 所需输出:

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"}]

Initial Attempt 初次尝试

I have did it as follows, https://jsfiddle.net/s8mywm33/1/ 我做了如下, 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]);

However is there a better way to do it? 但是,有更好的方法吗?

As per my recommendations in the comments, there are a number of ways you could be doing this. 根据我在评论中的建议,您可以通过多种方式进行此操作。 The one I'd recommend is just using a dummy value (as I mentioned here ): 我建议使用的只是一个哑数值(正如我在这里提到的):

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"}];

This makes your intentions visibly clear for what data should be where, and doesn't require that much extra code. 这使您的意图清晰可见,应该将哪些数据存储在何处,并且不需要太多额外的代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如果其他条件在推/不转移的JavaScript - if else condition in push/unshift javascript javascript:将 object 取消移位到 object 数组 - javascript: unshift an object to an array of object 大数据集的Javascript数组取消移位和弹出操作 - Javascript array unshift and pop operation for big dataset Javascript display(); 没有显示弹出,推动,不移动,移动? - Javascript display(); no showing pop, push, unshift, shift? Javascript 中 unshift() 与 push() 的时间复杂度 - Time complexity of unshift() vs. push() in Javascript 如何在JavaScript中取消移位或将其添加到arguments对象的开头 - How to unshift or add to the beginning of arguments object in JavaScript 取消移位并推入 Javascript 中的循环,无限循环 javascript - unshift and push inside a loop in Javascript, infinite loop javascript Javascript 递归。 为什么以下代码适用于 .unshift() 而不是 .push()? - Javascript recursions. Why the following code works with .unshift() instead of .push()? 如何将变量作为键传递给javascript unshift / push? - how do I pass a variable as key into a javascript unshift/push? JS / Javascript 使用.push 或.unshift 是为了跟踪一个变量的历史 - JS / Javascript Using .push or .unshift is to Track the history of a variable
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM