JavaScript重新映射数据空数组
我正在尝试使用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
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,这确实有效!如果您使用该解决方案回答,我会将其标记为解决方案:)