使用数组时javascript中出现意外输出
为什么此阵列获得7个数据拷贝使用数组时javascript中出现意外输出,javascript,arrays,Javascript,Arrays,为什么此阵列获得7个数据拷贝 $('body').on('click', '#BtnSaveMed', function() { console.log("Clicked"); var Prescription = DBrand = DGeneric = DDose = DDoseUnits = DFreq = DDurn = DDurUnits = []; var loop = 0; $(".DrugRow").each(function() { console.log
$('body').on('click', '#BtnSaveMed', function() {
console.log("Clicked");
var Prescription = DBrand = DGeneric = DDose = DDoseUnits = DFreq = DDurn = DDurUnits = [];
var loop = 0;
$(".DrugRow").each(function() {
console.log("Looped:" + loop++);
id = $(this).attr('id');
id = id.replace("DrugRow", "");
console.log("id:" + id);
BrandVal = $("#brand" + id).val();
GenericVal = $("#generic" + id).val();
DoseVal = $("#dose" + id).val();
DoseunitVal = $("#doseunits" + id).val();
FreqVal = $("#freq" + id).val();
DurnVal = $("#durn" + id).val();
DurnunitVal = $("#durnunit" + id).val();
console.log("Brand:" + BrandVal + " Generic" + GenericVal);
count = 0;
if ( (BrandVal != "") && (GenericVal != "")) {
console.log("if loop count:" + count++);
DBrand.push(BrandVal);
DGeneric.push(GenericVal);
DDose.push(DoseVal);
DDoseUnits.push(DoseunitVal);
DFreq.push(FreqVal);
DDurn.push(DurnVal);
DDurUnits.push(DurnunitVal);
}
});
var jsondata=JSON.stringify(DBrand);
console.log("DBrand is " + jsondata);
Prescription = [DBrand, DGeneric, DDose, DDoseUnits, DFreq, DDurn, DDurUnits];
var jsondata=JSON.stringify(Prescription);
console.log(jsondata);
});
HTML:
处方中的预期数据:
["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""]
[["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""]]
处方中的数据:
["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""]
[["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""],["AUGMENTIN DUO 375MG TABLET","AMOXICILLIN 250MG+CLAVULANIC 125MG","","","","",""]]
为什么我的阵列有七个我期望的副本?var-Prescription=DBrand=DGeneric=DDose=DDoseUnits=DFreq=DDurn=DDurUnits=[]; 上述数组类型变量为引用类型。这就是为什么有重复记录。 您可以更改定义变量的方式,如下所示: var公式=[];var DBrand=[];var DGeneric=[]; Var DDose=[];var DDoseUnits=[];var-DFreq=[];var-DDurn=[];var DDurUnits=[]