Javascript数组推入for循环
我在第二个循环上有两个for循环,我使用push-to-a数组,名为myArray,它没有按所需的数据进行推送。在第二个for循环中将阵列返回到控制台,输出如下:Javascript数组推入for循环,javascript,arrays,for-loop,Javascript,Arrays,For Loop,我在第二个循环上有两个for循环,我使用push-to-a数组,名为myArray,它没有按所需的数据进行推送。在第二个for循环中将阵列返回到控制台,输出如下: ["Scottsdale CFS"] ["Scottsdale CFS", "Denver CFS"] ["Warren CFS"] ["Warren CFS", "Millford CFS"] ["Rockaway CFS"] ["Rockaway CFS", "Border CFS"] 然而,我希望数据显示如下: ["Scot
["Scottsdale CFS"]
["Scottsdale CFS", "Denver CFS"]
["Warren CFS"]
["Warren CFS", "Millford CFS"]
["Rockaway CFS"]
["Rockaway CFS", "Border CFS"]
然而,我希望数据显示如下:
["Scottsdale CFS", "Denver CFS", "Warren CFS", "Millford CFS", "Rockaway CFS", "Border CFS"]
我怎样才能做到这一点
注意:出现这种情况的原因是我正在迭代一个JSON文件,该文件检查第一个中心并检索数组中的数据,然后转到下一个中心并执行相同的操作。问题是每个数组都有两个元素,这就是为什么我要把它放到一个数组中
var looper = function(sec0, vz, lOrR) {
var myArray = [];
for(var i=0;i<vz[0]['Areas'].length;i++){
var tText = Object.keys(vz[0]['Areas'][i]);
var root = vz[0]['Areas'][i][tText][0];
var dataName;
}
var myArray = [];
if(sec0 === "Centers") {
for(var j=0;j<root[sec0].length;j++){
var myString = root[sec0][j]["Label"];
myArray.push(myString);
charts.chart.renderTo = lOrR+myArray.indexOf(root[sec0][j]["Label"]);
charts.title.text = root[sec0][j]["Label"];
dataName = root[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0,-1);
charts.series[0].name = dataName;
charts.series[0].data = [parseFloat(dataName)];
new Highcharts.Chart(charts);
}
}
}
}
唯一的原因是您正在重新声明数组var myArray=[] 尝试以下代码
var looper = function(sec0, vz, lOrR) {
var myArray = [];
for(var i=0;i<vz[0]['Areas'].length;i++){
var tText = Object.keys(vz[0]['Areas'][i]);
var root = vz[0]['Areas'][i][tText][0];
var dataName;
}
if(sec0 === "Centers") {
for(var j=0;j<root[sec0].length;j++){
var myString = root[sec0][j]["Label"];
myArray.push(myString);
charts.chart.renderTo = lOrR+myArray.indexOf(root[sec0][j]["Label"]);
charts.title.text = root[sec0][j]["Label"];
dataName = root[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0,-1);
charts.series[0].name = dataName;
charts.series[0].data = [parseFloat(dataName)];
new Highcharts.Chart(charts);
}
}
});
唯一的原因是您正在重新声明数组var myArray=[] 尝试以下代码
var looper = function(sec0, vz, lOrR) {
var myArray = [];
for(var i=0;i<vz[0]['Areas'].length;i++){
var tText = Object.keys(vz[0]['Areas'][i]);
var root = vz[0]['Areas'][i][tText][0];
var dataName;
}
if(sec0 === "Centers") {
for(var j=0;j<root[sec0].length;j++){
var myString = root[sec0][j]["Label"];
myArray.push(myString);
charts.chart.renderTo = lOrR+myArray.indexOf(root[sec0][j]["Label"]);
charts.title.text = root[sec0][j]["Label"];
dataName = root[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0,-1);
charts.series[0].name = dataName;
charts.series[0].data = [parseFloat(dataName)];
new Highcharts.Chart(charts);
}
}
});
您正在重新声明var myArray=[];有一个无关的声明myArrayDuh时刻!!!就这样。谢谢你,帽子@克劳德,当你在第一次和第二次声明之间甚至没有引用myArray时,我不明白这是怎么回事…@plalx,我取出了第二次声明,它成功了。我甚至做了一些不同的测试,果然做到了;有一个无关的声明myArrayDuh时刻!!!就这样。谢谢你,帽子@克劳德,当你在第一次和第二次声明之间甚至没有引用myArray时,我不明白这是怎么回事…@plalx,我取出了第二次声明,它成功了。我甚至做了一些不同的测试,果然是这样。