将两个数组合为一个

时间:2012-05-07 15:51:53

标签: javascript arrays

我有两个阵列 第一个是

lineChart = [{type : 'line' , data : arrdata }] ;

第二个是

mina = [{type : 'area' , data : [[1326844575000,10] ,[1326845955000,10]], color : 'H33FF00'},
        {type : 'area' , data : [[1326846575000,10] ,[1326848065000,10]], color : 'H33FF00'},
        {type : 'area' , data : [[1326848390000,10] ,[1326849755000,10]], color : 'H33FF00'} ];

当我把它们推到一起时:

mychart.push(lineChart);
mychart.push(mina); 

console.log(JSON.stringify(mychart)) ;

这就是我得到的

[{"type":"line","data":[]},[{"type":"area","data":[[1326844575000,10],[1326845955000,10]],"color":"H33FF00"},{"type":"area","data":[[1326846575000,10],[1326848065000,10]],"color":"H33FF00"},{"type":"area","data":[[1326848390000,10],[1326849755000,10]],"color":"H33FF00"}]]

我的问题是:如何将此结果数组作为这样的一个数组?

[{"type":"line","data":[]},{"type":"area","data":[[1326844575000,10],[1326845955000,10]],"color":"H33FF00"},{"type":"area","data":[[1326846575000,10],[1326848065000,10]],"color":"H33FF00"},{"type":"area","data":[[1326848390000,10],[1326849755000,10]],"color":"H33FF00"}]

2 个答案:

答案 0 :(得分:3)

将第一个对象推入数组。

mina.push(linechart);

另外,如果您特别想在开头使用线图 mina.unshift(linechart);

http://jsfiddle.net/E2WT8/

mina = [{type : 'area' , data : [[1326844575000,10] ,[1326845955000,10]], color : 'H33FF00'},
        {type : 'area' , data : [[1326846575000,10] ,[1326848065000,10]], color : 'H33FF00'},
        {type : 'area' , data : [[1326848390000,10] ,[1326849755000,10]], color : 'H33FF00'} ];

lineChart = {type : 'line' , data : [] } ;

mina.unshift(lineChart);

alert(JSON.stringify(mina)) ;

答案 1 :(得分:1)

首先:lineChart不是数组,它是一个对象。

mina是一个数组。

要添加lineChart,您可以使用mina.push(lineChart);

另一种方式是var mychart = mina.concat([lineChart]);

另一个解决方案是合并它们:

function arrayMerge(array1, array2) {
    var i, j, newArray = []; for(i=0,j=array1.length;i<j;++i) {
        newArray.push(array1[i]);
    }
    for(i=0,j=array2.length;i<j;++i) {
        newArray.push(array2[i]);
    }

    return newArray;
}

var mergedArray = arrayMerge(mina, [lineChart]);

JSfiddle:http://jsfiddle.net/4Zwkx/