簡體   English   中英

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

[英]Push and Unshift Operation in javascript object

我有以下數據集

輸入:

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}所需輸出背后的邏輯與兩個數據集的長度相匹配涉及unshiftpush操作的兩件事

所需輸出:

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]);

但是,有更好的方法嗎?

根據我在評論中的建議,您可以通過多種方式進行此操作。 我建議使用的只是一個啞數值(正如我在這里提到的):

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

這使您的意圖清晰可見,應該將哪些數據存儲在何處,並且不需要太多額外的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM