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