开发者

javascript array of arrays

开发者 https://www.devze.com 2023-04-01 10:01 出处:网络
I have the following arrays: var dates = new Array(); var answers = new Array(); Once Populated, they will be the same length. What I need is an array that pair the same index values of the arrays.

I have the following arrays:

var dates = new Array();
var answers = new Array();

Once Populated, they will be the same length. What I need is an array that pair the same index values of the arrays. Like so:

var pairedArray = new Array();
//pairedArray should have the form: [[dates[0], answers[0]], [dates[1], answers[1]], ...., [dates[n-1], answers[n-1]]]

e.g.

data: [
            [Date.UTC(2010, 0, 1), 29.9], 
            [Date.UTC(2010, 2, 1), 71.5], 
            [Date.UTC(2010, 3, 1), 106.4]
        ]

How is this possible given that I have two arrays开发者_高级运维 of the same length, answers and dates that are already populated?


If you know they are always the same length, simply loop through one and add both to the result:

var data = [];

for(var i=0; i<dates.length; i++){
    data.push([dates[i], answers[i]]);
}


var data = $.map(dates, function(v,i) { return [ [ v,answers[i] ] ]; });

You can use the jQuery.map()[docs] method, but you need to double-wrap the returned Array because when $.map gets an Array, it performs a concat.


var firstArray = ...
var secondArray = ...
if (firstArray.length === secondArray.length) {
    var result = [];
    for (var i = 0; i < firstArray.length; i++) {
        result.push({ [ firstArray[i], secondArray[i] ] });
    }
    // TODO: do something with the result
}


Try this

var dates = new Array();
var answers = new Array();
var pairedArray = new Array();

$.each(dates, function(i){
   pairedArray.push([ dates[i], answers[i] ]);
});
0

精彩评论

暂无评论...
验证码 换一张
取 消