JavaScript for循环仅返回数组中的最后一项

JavaScript for循环仅返回数组中的最后一项,javascript,highcharts,Javascript,Highcharts,我有下面的函数,其中有两个for循环遍历JSON文件。我遇到的问题是在barFactory函数中调用的第二个循环中,它只返回数组中的最后一项。如何解决这个问题?我正在调用图表对象,以便在每次迭代中创建图表对象,这样它就不会按照我的逻辑发生 var looper = function(sec0, vz, lOrR) { $('#' + lOrR + 'Title').text(sec0); for (var i = 0; i < vz[0]['Areas'].length

我有下面的函数,其中有两个for循环遍历JSON文件。我遇到的问题是在barFactory函数中调用的第二个循环中,它只返回数组中的最后一项。如何解决这个问题?我正在调用图表对象,以便在每次迭代中创建图表对象,这样它就不会按照我的逻辑发生

var looper = function(sec0, vz, lOrR) {

    $('#' + lOrR + 'Title').text(sec0);

    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];
        barFactory(root, sec0, lOrR, i, tText);

    }

    function barFactory(sec1, sec0, lOrR, i, tText) {
        var dataName;

        for (var j = 0; j < sec1[sec0].length; j++) {
            charts.title.text = sec1[sec0][j]["Label"];
            dataName = sec1[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0, -1);
            charts.series[0].name = dataName;
            charts.series[0].data = [parseFloat(dataName)];
            chart = new Highcharts.Chart(charts);
        }
    }
}
var looper=函数(sec0、vz、lOrR){
$(“#”+lOrR+“Title”).text(sec0);
对于(变量i=0;i
有几件事: -正如Barbara所说,我们没有看到您正在更改renderTo参数 -您正在使用同一对象创建图表,这可能会导致一些错误

我的建议是:

var dataName = dataName = sec1[sec0][j]['Metrics'][5]['Rep Res. %'].slice(0, -1);
chart = new Highcharts.Chart(
    Highcharts.merge(charts, {
        chart: { 
           renderTo: new_container_variable
        },
        title: {
           text: sec1[sec0][j]["Label"]
        }, 
        series: [{
            data: [parseFloat(dataName)],
            name: dataName
        }] 
    })
 );

另外,您是否确定:
dataName=sec1[sec0][j][Metrics'][5][Rep Res.%].slice(0,-1)-在
sec1
之后的路径是否正确?尝试
console.log(dataName)
以确保传递的值正确,并且Highcharts会出错。

因此,您正在尝试为
区域中的每个项目创建一个新的Highchart。你想用这个图表做什么?您似乎没有返回它或将它附加到DOMI的单独部分,我没有包括将它附加到DOM的部分。绘制条形图,但只绘制数组中的最后一个条形图。它不会“返回”任何内容;如果没有更多的信息,它应该如何工作还不清楚<代码>图表
也总是引用相同的内容。您是否在每个图表中更改renderto参数?是的,我也包括
renderto