javascript - 在 for 循环中创建新对象 - Javascript

标签 javascript object for-loop

我有一个页面,根据所选条件显示图表。每个图都是一个单独的实例,需要自己的对象引用。我在 for 循环中创建了新对象,但如何在该特定函数之外访问这些对象。

var chartObject = new Array();

function runInit () {
$(document).ready(function(){
    $("#submit").click(function() { 
        $("#pointList :selected").each(function(){
            selectedValues.push($(this).val()); 
        });

        for(var j = 0; j < selectedValues.length; j++)
        {
            chartObject[j] = new Object();

            var charts = [];

            charts.push( drawDataView( demos[demo] ) );

            chartObject[j].allDataLoaded = function( ) {
                //more code             
            };
        }
    }); 
});
}

我需要在另一个函数中使用chartObject[j]:

function drawDataView ( demo ) {
    var dataCache = new DataCache( chartObject[j], dataSource );
}

显然 j 没有在 drawDataView 中定义,那么我如何在该 for 循环中创建新对象并在其他地方使用该变量?

如有任何建议,我们将不胜感激!

最佳答案

您可以将 j 作为额外参数传递给 drawDataView 函数:

function drawDataView(demo, j) {
    var dataCache = new DataCache( chartObject[j], dataSource );
}

并这样调用它:

charts.push(drawDataView(demos[demo], j));

更新

由于您没有在 drawDataView 函数中返回任何内容,因此您的数组将填充 undefined。我认为您想在末尾添加 return dataCache;

关于javascript - 在 for 循环中创建新对象 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29212335/

相关文章:

javascript - Angular.js getElementById() 在 $scope 函数中不起作用

javascript - 下拉菜单移动页面溢出

Java ArrayList 类

postgresql - postgresql 9.4.5 中的对象类型是什么

c - 使用 C 的 sprintf 将文本文件格式化为列

javascript - 如何在数组中的多个对象上相互独立地使用 Angular $watch 和 Equality?

c# - 将 javascript 日期时间转换为 C#/VB.NET 日期时间

java - 在Java中从该类的主体内部实例化对象

python - 如何计算Python中列表成对比较的元素频率?

python - 循环创建多个图形后如何保存它们?