Javascript 关联数组设置不正确

Javascript 关联数组设置不正确,javascript,jquery,arrays,asp-classic,associative-array,Javascript,Jquery,Arrays,Asp Classic,Associative Array,我是javascript和jquery的新手,想知道是否有人能让我了解为什么这不能正常工作 我有一个下拉框,用户从中选择一个值,然后“处理”。处理后,下拉框的值和文本框存储在一个数组中。我希望用户能够将相同的下拉选择和文本框数据再次存储在数组中,但现在存储在一个新的值对中 第一家店是 TestArray[0][0]=“文本框值” 如果再次“处理”,它将是 TestArray[1][0]=“文本框值” 这样,我可以稍后解析并计算用户“处理”下拉选择的次数 var oneClickReport =

我是javascript和jquery的新手,想知道是否有人能让我了解为什么这不能正常工作

我有一个下拉框,用户从中选择一个值,然后“处理”。处理后,下拉框的值和文本框存储在一个数组中。我希望用户能够将相同的下拉选择和文本框数据再次存储在数组中,但现在存储在一个新的值对中

第一家店是 TestArray[0][0]=“文本框值”

如果再次“处理”,它将是 TestArray[1][0]=“文本框值”

这样,我可以稍后解析并计算用户“处理”下拉选择的次数

var oneClickReport = $("#reportName").val();
    if(oneClickReport == "Sample Report One"){
        var arrayOneCount = reportOneArray.length;
        var totalHouseholds = 0;
            $("#reportChecks span:visible").each(function(){            
                if($(this).find(':checkbox').prop('checked')){
                    var HHName = $(this).text();
                    reportOneArray.push(HHName);
                    arrayTest[arrayOneCount][totalHouseholds] = HHName;
                }
            totalHouseholds += 1;
            });
            for(i = 0; i < arrayOneCount; i+=1){
                alert(arrayTest[0][i]);
            }
    }
在线

arrayTest[arrayOneCount][totalHouseholds] = HHName;

您的
var arrayOneCount=reportOneArray.length问题并且您没有更改此值

您需要初始化数组。我不确定你到底想做什么,但你需要这样一个数组

var arrayTest = []
您需要初始化后续值,如

arrayTest[1] = []
然后可以访问阵列

arrayTest[1][0] = []
我为你树立了一个榜样

var oneClickReport = $("#reportName").val();
var arrayTest = [] # You may need to put this elsewhere
if(oneClickReport == "Sample Report One"){
    var arrayOneCount = reportOneArray.length;
    var totalHouseholds = 0;
        $("#reportChecks span:visible").each(function(){            
            if($(this).find(':checkbox').prop('checked')){
                var HHName = $(this).text();
                reportOneArray.push(HHName);

                if(!arrayTest[arrayOneCount]){ arrayTest[arrayOneCount] = []; }

                arrayTest[arrayOneCount][totalHouseholds] = HHName;
            }
        totalHouseholds += 1;
        });
        for(i = 0; i < arrayOneCount; i+=1){
            alert(arrayTest[0][i]);
        }
}
var oneClickReport=$(“#reportName”).val();
var arrayTest=[]您可能需要将其放在其他位置
如果(oneClickReport==“示例报告一”){
var arrayOneCount=reportOneArray.length;
var=0;
$(“#reportChecks span:visible”).each(function(){
if($(this).find(':checkbox').prop('checked')){
var HHName=$(this.text();
reportOneArray.push(HHName);
如果(!arrayTest[arrayOneCount]){arrayTest[arrayOneCount]=[];}
arrayTest[arrayOneCount][totalHouseholds]=HHName;
}
家庭总数+=1;
});
对于(i=0;i
每次调用函数时,该值都会递增。它将重新计算添加到数组中的新值,并以这种方式进行更新非常感谢您的回答,我想我差不多已经知道了。我遇到的一件我绝对没有想到的事情是,如果用户最初选择了多个要添加的复选框,arrayOneCount值将不会是1,但无论选择了多少复选框。是否有办法检查arrayTest[0]或arrayTest[1]等是否已初始化和填充?我真的想要的是,如果用户第一次在arrayTest[0]中为所有选中的复选框处理“Report One”,然后再次处理arrayTest[1]等等。再次感谢您可以使用数组的length属性实现这一点。如果(arrayTest[arrayOneCount].length>0){在arrayTest[arrayOneCount]中有内容}否则{在arrayTest[arrayOneCount]中没有内容}
var oneClickReport = $("#reportName").val();
var arrayTest = [] # You may need to put this elsewhere
if(oneClickReport == "Sample Report One"){
    var arrayOneCount = reportOneArray.length;
    var totalHouseholds = 0;
        $("#reportChecks span:visible").each(function(){            
            if($(this).find(':checkbox').prop('checked')){
                var HHName = $(this).text();
                reportOneArray.push(HHName);

                if(!arrayTest[arrayOneCount]){ arrayTest[arrayOneCount] = []; }

                arrayTest[arrayOneCount][totalHouseholds] = HHName;
            }
        totalHouseholds += 1;
        });
        for(i = 0; i < arrayOneCount; i+=1){
            alert(arrayTest[0][i]);
        }
}