2012-11-05 2 views
-2

Я пытаюсь переназначить данные с помощью JavaScriptJavaScript переназначения данные пустой массив

data[year].map(function(val1,index1){ 
    for(var prop in val1){ 
     if (plotdata[prop] === undefined) 
      plotdata[prop] = new Array(); 
     if (plotdata[prop][year] === undefined) 
      plotdata[prop][year] = new Array(); 
     plotdata[prop][year][index1] = val1[prop]; 
    } 
}); 

data представляет собой массив с ключом "2012".

plotdata также представляет собой массив.

data['2012'] содержит 12 месяцев, индексированные от 0 до 11. Я пытаюсь переназначить данные, так что я могу получить доступ к нему, как plotdata[property][year][month], но проблема в том, что plotdata пуст после отображения.

Я проверил и val1[prop] действительно имеет значение. Что может быть проблемой здесь?

+1

Предоставить демо на jsfiddle.net – zerkms

+0

Вы пробовали просто перешагнуть через него с помощью отладчика (как это доступно в любых основных инструментах браузера dev)? – Matt

+2

Почему вы используете 'Array.map'? Не следует использовать его, если вы выбрасываете результат, я думаю, вы хотите использовать 'Array.forEach' –

ответ

1

За вышеуказанный комментарий-нить. , , это:

  plotdata[prop] = new Array(); 

вместо этого должен быть таким:

  plotdata[prop] = {}; 

, потому что вы хотите ассоциативный массив с годами в качестве ключей, а не длина 2,013 регулярный массив.

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