0

lets say I have

    var per_day = [];
    var data = [];
    var limits = [3, 7];
    for(var j in limits){
        for(var k = 1; k <= limits[j]; k++){
            per_day[k] = getInputValues("ge",limits[j],k);
        }
        data[j] = per_day;
    }

getInputValues() returns array. on { for(var j in limits) } first iteration it returns array with 3 elements and put this array into another array( data[0] ). But on second iteration it returns 7 elements and overrides the first array (data[1] override data[0]). So when I console.log() it I get 2 same array(second array duplicate). How to fix that? I want to make array which contains 2 different arrays

    data[0] = array; // with any length
    data[1] = array; // with any length
nooby
  • 294
  • 4
  • 17
  • 2
    Possible duplicate of [Javascript - insert an array inside another array](http://stackoverflow.com/questions/7032550/javascript-insert-an-array-inside-another-array) – Shailendra Sharma Jan 11 '16 at 13:12
  • no its not. I already have seen that answer, I have a different problem – nooby Jan 11 '16 at 13:15
  • 1
    Move the initialization of `per_day` inside the loop. –  Jan 11 '16 at 13:21

1 Answers1

0

Move the initialization of per_day inside the loop. Currently you are just declaring it once, so it is being re-used as both data[0] and data[1].

var data = [];
var limits = [3, 7];

for(var j in limits){

    ////////////////////////////////////////////
    // MOVE THIS INITIALIZATION INSIDE LOOP!!!
    var per_day = [];
    ////////////////////////////////////////////

    for(var k = 1; k <= limits[j]; k++){
        per_day[k] = getInputValues("ge",limits[j],k);
    }
    data[j] = per_day;
}