簡體   English   中英

圖表的Javascript數組格式

[英]Javascript array format for charts

我有兩個數組

A =[1990,1991,....]
B=[a,b,c,d,e,f,...]

我想要這種格式的結果數組

Resultant=[{
                name: 1990,
                data: [a,b,c]

            },{
                name: 1991,
                data: [d,e,f]

            },...
           ]

請幫助我如何使用for循環?

這將根據您的(相當模糊的)要求使用Array.prototype.map格式化數據:

var A = [1990,1991];
var B = ["a","b","c","d","e","f"];

var formatted = A.map(function (name, i) {
    return {
        name: name,
        data: B.slice(i*3, i*3+3)
    }
});

/*[
    {
        "name": 1990,
        "data": [
            "a",
            "b",
            "c"
        ]
    },
    {
        "name": 1991,
        "data": [
            "d",
            "e",
            "f"
        ]
    }
]*/

假設對於A中的每個元素,您都希望數據存儲B的3個元素。我堅持使用for循環的要求。

var Resultant = [];
for (var i = 0; i < a.length; i++) {
   var data = [];
   for (var j = 0; j < 3, B.length > 0; j++) {
       data.push(B.shift());
   }

   Resultant.push({name: A[i], 'data': data});
}

這個怎么樣:

var b= ["a","b","c","d","e","f"];
var result = [1990,1991].map(function(n){ return { name:n, data: b.splice(0,3)} });

這對我有用:

http://jsfiddle.net/s5zdD/ <-參見jsfiddle以顯示

A =[1990,1991,1992];
B=['a','b','c','d','e','f','g','h','i'];

var Resultant = jQuery.map(A, function(i,v){
// if no jQuery use:
// var Resultant = A.map(function(i,v){
    return {
        'name':A[v],
        'data': B.splice(0,3)
    }
})

console.log(Resultant);

暫無
暫無

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

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