2014-01-31 3 views
0

Я пытаюсь заполнить ассоциативный массив динамическим способом. Я читал много документов, но не мог понять правильный путь.Associative Arrays - Javascript

Результат кода будет

op{ 
    '0': value1, value2 
    '128': value3, value4, value 6 
    '630': value7 
} 

Это то, что я написал, и не работает

var arr = []; 
for(var i = 1; i <=last ; i++){ 
    var key = rec[i].op; 
    var op = {}; 
    op[key] = rec[i].description; 
    arr.push(op); 
} 

Самая последняя запись перезаписывать предыдущую запись.

+3

Есть много переменных в коде, которые не объявлены. Вы опубликовали весь свой код? Кроме того, желаемый результат не является допустимым объектом. это массивы, содержащие несколько 'valueX'? – Cerbrus

+0

FYI, JS не имеет ассоциативных массивов; у них есть объекты. Многие люди делают эту ошибку. – Andy

+0

Да, это массивы, содержащие несколько значений. Результатом будет объект, содержащий несколько массивов. – Arindam

ответ

0

Я думаю, что вы хотите что-то вроде:

var op = {}; 
for(var i = 0; i < last ; i++) 
{ 
    var key = rec[i].op; 
    if (op[key] == undefined) 
    { 
     op[key] = []; 
    } 
    op[key].push(rec[i].description); 
} 
+0

Спасибо, это работает ... – Arindam