2016-08-31 4 views
4

Я не могу вставить данные в массив. Я хочу, чтобы это было как один массив. Я хочу добавить 12 месяцев в каждой строке. Ниже мой код:Вставить данные в массив

var data = {}; 
for (var i = 0; i < 5; i++) { 
    data[i] = { 
     Name: "Sample", 
     Group: "Sample", 
     Offering: "India", 
     Type: "Employee", 
     subject: "Sample", 
     sponser: true 
    }; 

    for (j = 1; j <= 12; j++) { 
     var val = "m" + j; 
     data.val = j + 1; 
    } 
} 
+0

data.val = J + 1; должны быть данные [i] .val = j + 1; –

+1

@AmrElgarhy это не будет работать, потому что 'val' является строкой, и поэтому вы пытаетесь установить свойство' val' вместо 'm1',' m2', ... – eisbehr

+0

@eisbehr что мне делать – anand

ответ

1
  1. Ваш array является object! Если вы хотите, чтобы это было array, вам необходимо изменить var data = {}; на var data = [];. Но он будет работать одинаково, поэтому здесь не имеет значения.
  2. Вы не указали переменную j во втором цикле for. Вам нужно добавить var перед этим, как и в первом цикле.
  3. Вам необходимо указать текущий index вашего object/array, на который вы хотите установить месяцы. Поэтому напишите data[i] вместо data во втором цикле for.
  4. Как вы хотите использовать значение val как key в вашем object/array, вам нужно положить наручники [] вокруг него. В противном случае вы установите только свойство val объекта.
  5. Ваши месяцы идут от 1 до 12. Вам нужно будет только установить j вместо j + 1, потому что вы в противном случае напишите месяцы от 2 до 13.

var data = {};      // this is an object 
 
            // if it should be an array write 'var data = [];' 
 

 
for(var i = 0; i < 5; i++) { 
 
    data[i] = { 
 
     Name  : "Sample", 
 
     Group : "Sample", 
 
     Offering : "India", 
 
     Type  : "Employee", 
 
     subject : "Sample", 
 
     sponser : true 
 
    }; 
 

 
    for(var j = 1; j <= 12; j++) { // added 'var' before 'j' 
 
     var val = "m" + j; 
 
     data[i][val] = j;   // added '[i]' after 'data' 
 
            // changed '.val' to '[val]' 
 
            // removed '+ 1' after 'j' 
 
    } 
 
} 
 

 
console.log(data);

Смежные вопросы