JavaScript重新映射数据空数组

JavaScript重新映射数据空数组,javascript,Javascript,我正在尝试使用JavaScript重新映射数据 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][ye

我正在尝试使用JavaScript重新映射数据

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];
    }
});
数据
是一个带有键的数组
“2012”

plotdata
也是一个数组

数据['2012']
包含12个月,索引范围从0到11。我正在尝试重新映射数据,以便像
plotdata[property][year][month]
那样访问它,但问题是映射后
plotdata
为空


我已经检查过了,
val1[prop]
确实有一个值。这里可能有什么问题?

根据上面的评论线程。这:

            plotdata[prop] = new Array();
应改为:

            plotdata[prop] = {};

因为您需要的是以年为键的关联数组,而不是长度为2013的常规数组。

在jsfiddle.net上提供了一个演示。您是否尝试过使用调试器(在任何主要的浏览器开发工具中都可以使用)单步执行它?为什么要使用
array.map
?不应该使用它如果你扔掉结果,我想你的意思是使用
数组。forEach
这不是你的问题,但是--
plotdata[prop]=new Array()
实际上应该是
plotdata[prop]={}
?这里似乎不需要实际长度为2013的数组。@ruakh,这确实有效!如果您使用该解决方案回答,我会将其标记为解决方案:)